国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

Asp.Net的控件如何與Server交互

2024-07-10 13:09:43
字體:
來源:轉載
供稿:網友

商業源碼熱門下載www.html.org.cn

以前寫asp的程序的時候,知道只有type設置為submit的按鈕,才能觸發表單提交數據給服務器端。
如:asp.net中的button就是等于<input type="submit">.
但是現在asp.net的好多控件都可以任意的和服務器端交互,如:linkbutton.
這是怎么實現的呢?
難道是一種全新的方式嗎?
其實,這只是微軟的一種變通的方式。
我們先來看看客戶端的代碼是如何的.
我這里是一個帶有linkbutton的頁面,
其實linkbutton在客戶端就等于html里的a.
我們來看看linkbutton為什么也能和服務器端交互?
當我們點擊右鍵查看該頁面的源代碼時,看到:

<script type="text/javascript">
<!--
var theform = document.forms['ctl00'];
if (!theform) {
    theform = document.ctl00;
}
function __dopostback(eventtarget, eventargument) {
    if (!theform.onsubmit || (theform.onsubmit() != false)) {
        theform.__eventtarget.value = eventtarget;
        theform.__eventargument.value = eventargument;
        theform.submit();
    }
}
// -->
</script>
<a id="simplelinkbutton1" href="javascript:__dopostback('simplelinkbutton1','')">click me</a>
<input type="hidden" name="__eventtarget" id="__eventtarget" value="" />
<input type="hidden" name="__eventargument" id="__eventargument" value="" />

從上面的代碼中就可以看出simplelinkbutton1是一個鏈接,通過客戶端代碼來提交所在的表單。
而其中兩個隱藏域,則用來交換數據的,就是把__dopostback的兩個參數值賦給這兩個隱藏域。
這就是為什么linkbutton也具有提交數據的最直觀的原因。

那么這上面的代碼是怎么生成的呢?
我們看linkbutton的源代碼就可以清楚地知道:

protected internal override void onprerender(eventargs e)
{
      base.onprerender(e);
      if ((this.page != null) && this.enabled)
      {
            this.page.registerpostbackscript();
            if ((this.causesvalidation && (this.page.getvalidators(this.validationgroup).count > 0)) || !string.isnullorempty(this.postbackurl))
            {
                  this.page.registerwebformsscript();
            }
      }
}

以上只是把自己在學習工作過程中的一些體會記錄如此,防止自己忘記了。
也望和大家多多交流!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇文区| 长葛市| 星座| 增城市| 镇坪县| 泽普县| 准格尔旗| 塘沽区| 翁源县| 灵台县| 桦南县| 肇庆市| 紫云| 蒙阴县| 仁化县| 凤凰县| 莒南县| 衡南县| 盐亭县| 平武县| 新干县| 锦州市| 区。| 洞口县| 巢湖市| 朝阳市| 新建县| 咸阳市| 武鸣县| 饶河县| 凤山县| 扶绥县| 蕲春县| 和平区| 子长县| 社旗县| 昭苏县| 双辽市| 晋江市| 腾冲县| 澜沧|