1. 일반적으로 ASPX 페이지의 웹 양식 컨트롤에 JavaScript 특성을 추가하려면 속성을 사용하여 달성 할 수 있습니다.
예를 들어, TextBox TXT의 경우 다음을 수행 할 수 있습니다.
txt.attributes.add ( "onclick", "fcn0 ();");
그런 다음 웹 페이지에 있으면 FCN0 JavaScript 기능이 호출됩니다.
1.1. 예외는 IDE가 인식 할 수없는 속성의 분석입니다.
예를 들어, Radiobutton RBT의 경우 IDE는 OnClick의 속성을 인식 할 수 없으며 위의 진술을 인식 할 수 없습니다.
rbt.attributes.add ( "onclick", "fcn1 (this);");
.NET 프레임 워크 1.1에서
<입력 유형 = 무선 ID = RBT> ...
.NET 프레임 워크 1.0에서
<span> <입력 유형 = 무선 ID = RBT> ... </span>
FCN1에서는 매개 변수에 해당하는 객체가 다릅니다. 이것은 약간의 차이입니다.
2. HTML 제어하려면 더 많은 일을해야합니다.
ASPX 페이지를 설계 할 때는 텍스트 상자에서 웹 양식 컨트롤을 드래그하면 다음이 발생합니다.
1. ASPX 페이지 더 많은 문장
<asp : textbox id = "textbox1"runat = "server"> </asp : textbox>
둘째, 뒤에 코드
Protected System.Web.ui.WebControls.TextBox TextBox1;
HTML 컨트롤 인 경우 첫 번째 문장에서 runat = "Server"가 나타나지 않으며 두 번째 게임은 자동으로 추가되지 않습니다.
따라서 HTML 컨트롤에 액세스하려면 필요합니다.
1. ADD RUNAT = "SERVER"속성 ASPX 페이지의 문자가됩니다.
<입력 유형 = "text"size = "9"id = "htxt"runat = "server">
둘째, 선언은 코드 뒤에 표시되었습니다
보호 시스템 .web.ui.htmlcontrols.htmlinputtext;
첫 번째 문장의 ID는 두 번째 문장의 변수 이름과 동일합니다.
2.1 、注意到 、注意到 、注意到, 、注意到 、注意到 、注意到 web.ui.webcontrols.textbox 对应的 html 컨트롤 是 시스템 .web.ui.htmlcontrols.htmlinputtext <html 的 tag <입력 유형 = "text">,
이에 따라, HTML 태그 <hod>의 해당 HTML 제어는
public system.web.ui.htmlcontrols.htmlgnericcontrol mybody;
2.2. 한 가지 예외는 html의 <form> 태그에 해당하는 OnSubmit 사고에 대한 사고입니다. ASPX 페이지를보십시오
< %@ page language = "c#"codebehind = "webform2.aspx.cs"autoeventwareup = "false"inherits = "testcs.webform2" %>
<doctype html public "-// w3c // dtml 4.0 과도기 // en">>
<html>
<헤드>
<title> webform2 </title>
<meta name = "일반"content = "Microsoft Visual Studio 7.0">
<meta name = "code_language"content = "c#">
<meta name = "vs_defaultclientscript"content = "javaScript">
<meta name = "vs_targetschema"content = "http://schemas.microsoft.com/intellisense/ie5">
<script language = "javaScript">
기능 fcn1 ()
{{
프롬프트 ( "hi", "fcn1");
}
</스크립트>
</head>
<body ms_positioning = "gridlayout">
<form id = "webform2"method = "post"runat = "server"onsubmit = "fcn1 ();">
<asp : button id = "button1"runat = "server"text = "button"> </asp : button>
<asp : dropdownlist id = "dropdownlist1"runat = "server"autopostback = "true">>
<asp : listitem value = "a"> a </asp : listitem>
<asp : listitem value = "b"> b </asp : listitem>
<asp : listitem value = "c"> c </asp : listitem>
</asp : dropdownlist>
</form>
</body>
</html>
컨텐츠는 매우 간단합니다. JavaScript 함수 FCN1을 정의하고 버튼 버튼 1과 AutoPostback DropdownList DropdownList1을 넣고 실행하십시오. .
Microsoft AutoPostback = True의 WebControl 구현 Postback은 다음과 같습니다.
먼저이 ASPX 페이지에 AutoPostback = True의 웹 구성이 있으면 __dopostback이라는 JavaScript 함수를 작성합니다.
<script language = "javaScript">
<!-
함수 __dopostback (EventTarget, EventArgument) {
var theform;
if (winde
Theform = document.forms [ "webform2"];
}
또 다른 {
Theform = document.webform2;
}
eventTarget.value = eventTarget.split ( "$");
Theform .__ EventArgument.Value = EventArgument;
Theform.submit ();
}
//->
</스크립트>
예를 들어, 위의 드롭 다운 목록이 렌더링됩니다.
<select name = "dropdownlist1"onchange = "__dopostback ( 'dropdownlist1', '')"언어 = "JavaScript"id = "dropdownlist1">
<옵션 값 = "a"> a </옵션>
<옵션 값 = "b"> b </옵션>
<옵션 값 = "C"> C </옵션>
</선택>
이런 식으로, form.submit ()에게 전화를 걸어 포스트백을 제출하십시오.
이것은 Microsoft의 버그입니다.
솔루션은 여기에서 볼 수 있습니다. http://www.devhawk.net/art_submitfirefixup.ashx는 여기에 DLL과 소스 코드를 추가 한 다음 Web.config에 추가하십시오. 이전 단락
<httpmodules>
<add type = "devhawk.web.submitfirefixupModule, upplifixUpModule"name = "upplirefixupModule" /> /> />
</httpmodules>
괜찮아요.
3. 응용 프로그램.
JavaScript가 브라우저에서 JavaScript와 함께 <select> 요소를 변경하면 해당 서버 측의 DropDownList 가이 업데이트를 알 수 없다는 불만이 종종 들립니다.
이 상황은 "클래스 페더레이션"의 드롭 다운리스트에 나타날 수 있습니다. 예를 들어 첫 번째 드롭 다운리스트는 도시입니다.
위의 기술을 사용하여 그러한 솔루션을 만들었습니다 (ViewState의 방법과 유사).
먼저, 나는 길이와 너비의 텍스트 상자 txtwrap을 정의하고, 처리 준비를 위해 athososw = "true"와 같은 속성으로 처리하려는 모든 드롭 다운 목록을 추가합니다.
2. 위의 2.2의 내용을 참조하십시오. 위의 2.2의 내용을 참조하십시오. 제출 FixFixUpModule에 가입하여 OnSubmit 이벤트가 형성되는 이벤트를 확인했습니다.
셋째, Form의 OnSubmit 이벤트는 JavaScript 함수 FCNATHOSONSUBMITWRAP를 실행하여 Athososwa 속성의 드롭 다운리스트를 True로 기록하고 마지막으로 TXTWRAP로 병합했습니다. 코드는 다음과 같습니다.
함수 fcnathosonsubmitwrap ()
{{
txtwrap = document.all [ "txtwrap"];
var i;
var strwrap = '';
for (i = 0; i <document.all.length; i ++)
{{
ctrl = document.all [i];
if (ctrl.tagname.toupperCase () == 'select'&& typeof (ctrl.athosoSW)! = 'undefined')).
{{
if (ctrl.athososw.touppercase () == 'true')
{{
strwrap + = fcnathoswrapselect (ctrl) + '&&&;
}
}
}
if (strwrap.length> 3)
txtwrap.value = strwrap.substring (0, strwrap.length-3);
};
// athososw
함수 fcnathoswrapSelect (ctrlSelect)
{{
var i;
var strwrapSelect = ctrlSelect.id + '&' + ctrlSelect.tagName;
var strvalue = '';
var strtext = '';
for (i = 0; i <ctrlselect.options.length; i ++)
{{
strvalue = ctrlselect.options [i];
strtext = ctrlselect.options [i] .text;
strwrapSelect + = '&&' + i + i + '&' + strvalue.replace (/&/g, '%26') + '&' + strtext.replace (/&/g, '%26');
};
return strwrapSelect;
};
넷째, form의 page_load는 clscommon.unwrapcontrol (this, txtwrap.text)이라고합니다. clscommon은 내 도구 클래스입니다.
정적 공공 공극 대학
{{
regex r3 = new Regex ( "("( "("( "("(&&&))); // 하이픈에서 분할.
regex r2 = new Regex ( "("( "("( "(&&))); // 하이픈에서 분할.
regex r1 = new Regex ( "("(&)); // 하이픈에서 분할.
문자열 [] SA3, SA2, SA1;
문자열 S3, S2, S1;
int i3, i2, i1;
문자열 strid, strtagname;
System.web.ui.control ctrlunwrap;
드롭 다운 목록 DDLUNWRAP;
LIADD LIADD;
s3 = strunwrap;
sa3 = r3.split (s3);
for (i3 = 0; i3 <(sa3.length+1)/2; i3 ++)
{{
S2 = SA3 [i3*2];
if (s2.length> 0)
{{
sa2 = r2.split (s2);
if (sa2.length> 1)
{{
S1 = SA2 [0];
sa1 = r1.split (s1);
if (sa1.length == 3)
{{
strid = sa1 [0];
strtagname = sa1 [2];
ctrlunwrap = pgunwrap.findControl (strid);
if (ctrlunwrap! = null)
{{
if (strtagname == "select")
{{
ddlunwrap = (DropdownList) ctrlunwrap;
ddlunwrap.items.clear ();
for (i2 = 1; i2 <(sa2.length+1)/2; i2 ++)
{{
S1 = SA2 [i2*2];
sa1 = r1.split (s1);
liadd = new System.web.ui.webcontrols.listitem (SA1 [4], SA1 [2]);
ddlunwrap.items.add (liadd);
}
}
}
}
}
}
}
}
Athossmth 모든 권리 보유.