ASP.NET 응용 프로그램을 개발하는 동안 스크립트를 작성하는 것은 실제로 일반적으로 사용되는 스크립트를 해당 .NET 구성 요소에 설치하고 이를 서버에서 호출할 수 있으므로 스크립트 작성이 크게 단순화되고 재사용이 향상됩니다. 스크립트.
다음은 모달 폼을 열고 반환 값을 얻기 위해 일반적으로 사용되는 클래스 호출입니다. 실제로 여러 매개 변수를 설정하고 컨트롤마다 다른 반환 값을 얻을 수 있습니다.
양식을 열고 반환 값을 설정하는 스크립트 클래스를 정의합니다.
HFSoft.Web.Scripts.ShowModalDialog 대화 상자=새 HFSoft.Web.Scripts.ShowModalDialog(
XXX.Units.Config.WebBoot+"Appunit/WindowOpenDialog.aspx",
FrmFailureLogSearch.PageURI());
대화상자.높이=400;
대화상자.폭=600;
Dialog.ReturnElements.Add(new HFSoft.Web.Scripts.ReturnElement(this.txtReturn.ClientID,"ReturnString"));
HFSoft.Web.Scripts.RegisterScript.RegiOnClick(cmdSearch,dialog)
코드를 사용하여 양식을 열고 반환 값을 설정합니다.
HFSoft.Web.Scripts.ReturnValues returnValue=new HFSoft.Web.Scripts.ReturnValues();
returnValue.Add("ReturnString",filter);
HFSoft.Web.Scripts.RegisterScript.RegiPageClient(this, "return", returnValue);
양식 클래스의 코드를 엽니다(실제로 많은 스크립트가 이 방식으로 캡슐화될 수 있습니다).
00006 네임스페이스 HFSoft . Scripts
00007 {
00008 /// <summary>
00009 /// 오픈 폼 스크립트 클래스 생성
00010 /// 참고: 반환 값 매개변수 data가 수신하는 데이터 형식은
00011 /// key= value|key1 =value1|.....
00012 /// </summary>
00013 public class ShowModalDialog : IExecuteScript
00014 {
00015 private const string _Dialog ="window.showModalDialog({0},' ','DialogHeight : { 1 } px ;
대화 상자 너비: { 2 } px ; 가장자리: 예 ; 도움말: 아니요 ; 크기 조정 가능: 아니요 ; 스크롤:
예 ;');" ;
00016 #region IExecuteScript 멤버
00017 ;
00018 / // <summary>
00019 /// 상위 포인터를 로드해야 합니까
? 00020 /// </summary>
00021 public bool Parent
00022 {
00023 get
00024 {
00025 // TODO: 구현하기 위해 SetElementsValue.Parent getter를 추가합니다.
00026 return mParent ;
00027 }
00028 set
00029 {
00030 // TODO: 00031을 구현하기 위해 SetElementsValue.Parent 설정자를 추가합니다.
mParent = value
00032 }
00033 }
00034 private string GetParent ()
00035 {
00036 if ( Parent )
0003 7 "부모"를 반환합니다. ;
00038 return "" ;
00039 }
00040 /// <summary>
00041 /// 객체 00042 생성
/// </summary>
00043 /// <param name="pageContainer">컨테이너 페이지</param>
00044 // / <param name="openPage" >페이지 열기</param>
00045 public ShowModalDialog ( string pageContainer , string openPage )
00046 {
00047 PageContainer = pageContainer ;
00048 OpenPage = openPage
}
00050
public const string PageUrlTag ="pageurl" ;
/// <summary >
00052 /// 스크립트 생성
00053 /// </summary>
00054 /// <returns>string</returns>
00055 public string Execute ()
00056 {
00057 // TODO: ShowModalDialog.Execute 구현 추가
00058 string url =" ' " + PageContainer +" ? pageurl ='+" + GetPage ();
00059 url = string . Format ( _Dialog , url , Height , Width )
url = GetParent () +
00061 if ( ReturnElements . 개수 >0 )
00062 {
00063 url = "var getvalue=" + url +";if(getvalue != null){" ;
00064 foreach ( ReturnElements 의 ReturnElement 항목 )
00065 {
00066 url += 항목 . ());
------------------------------------- ----------------------------------
00067 }
00068 url +="}" ;
00069 반환 url +
";"
00072
}
00073
00074 #endregion
00076
/// <summary>
00077 /// 컨테이너 페이지 가져오기 또는 설정(경로 포함)
00078
/// </summary>
00079
공개 문자열 PageContainer
00080
{
00081
get
00082 {
00083 return mPageContainer ;
}
00090
비공개 문자열 mOpenPage
;
value ;
00103 }
00104 }
00105 private int mHeight =400;
00106 /// <summary>
00107 /// 열린 양식의 높이를 가져오거나 설정합니다.
00108 /// </summary>
00109 public int Height
00110 {
00111 get
00112 {
00113 return mHeight ;
00114 }
00115 set
00116 {
00117 mHeight = value ;
00118 }
00119 }
00120 private int mWidth =400
/// <summary>
00122 /// 열린 양식의 너비를 가져오거나 설정합니다
. / < /summary>
00124 공개 int 너비
00125 {
00126 get
00127 {
00128 return mWidth
}
00130 set
00131 {
------------------------------------- ----------------------------------
00132 mWidth = value ;
00133 }
00134 }
00135 private ReturnElementCollections mReturnElements = new ReturnElementCollections ()
00136 /// <summary>
00137 /// 반환 값 요소 집합 가져오기
00138 /// </summary>
00139 public ReturnElementCollections ReturnElements
001 40 {
00 141 get
00142 {
00143 return mReturnElements ;
00144 }
00145 }
00146 private ParameterCollection mParameters = new ParameterCollection ()
00147 /// <summary>
00148 /// 열린 페이지의 매개변수 세트 가져오기
00149 /// </summary>
00150 공개 ParameterCollection 매개변수
00151 {
00152 get
00153 {
00154 return mParameters ;
00155 }
00156 }
00157 비공개 문자열 GetPage ()
00158 {
00159 if ( 매개변수 . Count ==0)
00160 return "' "+OpenPage+" '" ;
시스템 . Text StringBuilder . StringBuilder ();
00162 sb .Append ("' "+OpenPage+" '" )
string param =""
;
00165 for ( int i = 0; i < 매개변수 . 개수 ; i ++)
00166 {
00167 if ( 매개변수 [ i ]. 요소 == ElementType . 요소 )
00168 {
00169 param ="' " + 매개변수[i].Name +" =' + " + parent +" document.all('
"+Parameters[i].Value + " ').value"
00170 }
00171 else if ( 매개변수 [ i ]. Element == ElementType . Select )
00172 {
00173 param ="' " + 매개변수[ i].Name +" =' + " + parent +"__getSeletedButton(" + parent +
"document.all(' "+Parameters[i].Value + " '))" ;
00174 }
00175 if ( i ==0 )
00176 {
00177 sb . 추가("+' "+System.Web.HttpUtility.UrlEncode(" ?") +" '+" + param );
else
00180 {
00181
sb . +' "+ System.Web.HttpUtility.UrlEncode(" &") +" '+" + param );
00182 }
00183 }
00184 return sb . ToString ();
00185 }
00186
00187
00188
00189 }
00190 #region subClass
00191 공개 enum ElementType
0 0192 {
00193 없음,
00194 요소,
00195 선택
------------------------------------- ----------------------------------
00196 }
00197 /// <summary>
00198 /// 매개변수 설명 클래스
00199 /// </summary>
00200 공용 클래스 매개변수
00201 {
00202 /// <summary>
00203 /// 매개변수 객체 생성
00204 /// </ summary>
00205 public Parameter ()
00206 {
00207 }
00208 /// <summary>
00209 /// 지정된 이름과 값을 사용하여 매개변수 개체를 생성합니다.
00210 /// </summary>
00211 /// <param name="name "> 매개변수 이름</param>
00212 /// <param name="value">매개변수 값</param>
00213 공개 매개변수( 문자열 이름 , 문자열 값 )
00214 {
00215 이름 = 이름 ;
00216 값 = 값 ;
00217 }
00218 / // <summary>
00219 /// 지정된 이름과 값을 사용하여 매개변수 개체를 생성합니다
. 00220 /// </summary>
00221 /// <param name="name">매개변수 이름</param>
00222 /// <param name ="value">매개변수 값</param>
00223 /// <param name="iselement">값이 요소 이름인가요?</param>
00224 공용 매개변수( 문자열 이름 , 문자열 값 , ElementType 요소 )
00225 {
00226 이름 = 이름 ;
00227 값 = 값 ;
00228 요소 = 요소
00229 }
00230
00231 private string mName
00232 /// <summary>
00233 /// 매개변수 이름 가져오기 또는 설정
00234 /// </summary>
00235 공개 문자열 이름
00236 {
00237 get
00238 {
00239 return mName ;
00240 }
00241 set
00242 {
00243 mName = value ;
00244 }
00245 }
00246 private string mValue ;
매개
변수 값
00249 /// </summary >
00250 공개 문자열 값
00251 {
00252 get
00253 {
00254 return mValue
00255 }
00256 set
00257 {
00258 mValue = value ;
------------------------------------- ----------------------------------
00259 }
00260 }
00261 private ElementType mElement = ElementType . None ;
00262 /// <summary>
00263 /// 매개변수 값이 매개변수 이름인지 여부를 가져오거나 설정합니다.
00264 /// </summary>
00265 public ElementType Element
00266 {
00267 get
00268 {
00270
}
00271 set
00272 {
00273 mElement = value ;
00274
}
00276 }
00277 public class ParameterCollection: System .
int index ]
00280
{
0 0281
00282
가져오기{
00283 return ( ( 매개변수 ) 목록 [ 색인 ] );
00285
set
00286 {
00287 목록 [ 색인 ] = 값
00288 }
00289 }
00290
00291 public int Add ( 매개변수 값 )
00292 {
00293 return ( 목록 . 추가 ( 값 ) );
00294 }
00295
00296 public int IndexOf (매개변수 값)
00297 {
00298 return ( List . IndexOf ( 값 ) )
00300
00301
public void Insert ( int index , 매개변수 값 )
00302 {
00303 List . value );
00304 }
00305
00306 public void Remove ( 매개변수 값 )
00307 {
00308
00309 List . Remove ( 값 )
00311
00312
public bool Contains ( 매개변수 값 )
00313 {
00314 // 값이 Int16 유형이 아닌 경우 false를 반환합니다.
00315 return ( List . Contains ( value ) )
00316 }
00317
00318 }
00319 /// <summary>
------------------------------------- ----------------------------------
00320 /// 요소 설명을 받는 반환 값 class
00321 /// </summary>
00322 public class ReturnElement
00323 {
00324 /// <summary>
00325 /// 객체 생성
00326 /// </summary>
00327 /// < param name="id">값을 받는 요소 ID</param>
00328 /// <param name="key">해당 값의 키 값</param>
00329 public ReturnElement ( string id , string key )
00330 {
00331 ID = id ;
00332 Key = key ;
00333 }
00334 private string mID
00335 /// <summary>
00336 /// 요소 ID 가져오기 또는 설정
00337
/// </summary>
00338 public string ID
00339
get
00341 {
00342 return mID ;
00343 }
00344 set
00345 {
00346 mID = value ;
00347 }
00348 }
00349 private string mKey
00350 /// <summary>
00351 /// 해당 값의 키 값을 가져오거나 설정합니다
. // </summary >
00353 public string Key
00354 {
00355 get
00356 {
00357 return mKey ;
00358 }
00359 set
00360 {
00361 mKey = value
00362 }
00363 }
00364 /// <summary>
00365 /// 작업 스크립트 가져오기
00366 /// </ 요약>
00367 /// <returns>string</returns>
00368 public string GetScript ( string parent )
00369 {
00370 return parent +"document.all(' "+ID +" ').value=" + parent +"__AnalyseString(' "+Key +"
',getvalue);"
00371 }
00372
}
00373
public class ReturnElementCollections: System . CollectionBase
00374 {
00375 public ReturnElement this [ int index
]
00376
return(( ReturnElement ) 목록 [ 색인 ] )
;
------------------------------------- ----------------------------------
00381 set
00382 {
00383 List [ index ] = 값 ;
00384 }
00385 }
00386
00387 public int Add ( ReturnElement 값 )
00388 {
00389 return ( List . Add ( 값 ) )
00391
00392
public int IndexOf ( ReturnEl 자산가치)
00 393 {
00394 return ( List . IndexOf ( value ) );
00395 }
00396
00397 public void Insert ( int index , ReturnElement value )
00398 {
00399 List . Insert ( index , value )
}
00401
00402 public void Remove ( ReturnElement 값 )
00403 {
00404
00405 List .Remove ( value );
00407
00408
public bool Contains ( ReturnElement value )
00409 {
00410 // 값이 Int16 유형이 아닌 경우 false를 반환합니다.
( List . Contains ( value ) ) ;
00412 }
00413 }
00414 #endregion
00415 }