關於html標籤,htmlweb控件 ,和webControl

總結:

1.

<form id ="form1" runat="server"/>中用
<input type="submit" value="ddd" id="btn_id" name="btn_name"/>
這種方式進行提交時,會在服務段發現,ispostback的時候即回發過程中 ,Request.Form或者Request.QuereyString能獲取到 所有客戶端 有name屬性(uniqueid)的html所提交的表單值。若客戶端標籤裏沒有name屬性(uniqueiD),而只有id屬性(clientId),服務端的Request.Form(或Request.QuereyString)是讀不到這個元素所提交的表單提交的值。
通過得到的結論是:服務端Request.Form(或Request.QuereyString)是通過name來識別控件樹中的html元素的。

 

2.
<input type="text" id="txt2_id"  name="txt2_name" runat="server"/>
<asp:TextBox id="txt3_id"  name="txt3_name" runat="server"/>
以上htmlweb控件和web服務器控件,說明了,服務器控件會自動生成name屬性的

 

3.

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" method="get" runat="server">
    <div>
    <input type="text" id="txt1_id" name="txt1_name"/>
    <input type="text" id="txt2_id"  name="txt2_name" runat="server"/>
    <asp:TextBox id="txt3_id"  name="txt3_name" runat="server"/>
        <input type="submit" value="ddd" id="btn_id" name="btn_name"/>
    </div>
    </form>
</body>
</html>

如果我們去掉<form id="form1" method="get" runat="server">中[runat="server"],,然後我們再在服務段調試後發現,我們仍然可以獲取到客戶端id提交的值(我原以爲獲取不到)。事實上,如果這個時候表單裏有web服務器控件的時候是會提示錯誤的。(但是若果有htmlweb控件不會提示該錯誤,原因還不知道爲什麼。但是如果該html控件有服務端事件觸發的話,是不會執行的)。如果表單裏不用web服務器控件,可以獲取到客戶端提交的值。但是獲取的過程,卻是在
(!ispostback)的過程中。按照那個ispostback爲false條件的的理論,我們發現Request.Form或Request.QueryString中並沒有__viestate開頭的name了。

 

4.htmlweb控件也支持服務器端事件,不過方法是onserverclick.我在試驗的過程中發現,多生了__doPostBack()這個js方法。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章