日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Asp.net控件开发学习笔记(六)----数据回传

發布時間:2025/4/16 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Asp.net控件开发学习笔记(六)----数据回传 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在Asp.net中,利用Http Post的回傳機制意味著可以再客戶端存儲狀態并且可以在服務器接收.Asp.net中大部分控件都提供了存儲自身狀態的功能并且在自身狀態改變時引發對應事件。IPostDataHandler接口提供了在服務器處理客戶端通過Http Post回傳數據的方法。

IPostDataHandler
通過實現IPostDataHandler接口,服務器可以在不使用Page和Request對象的情況下來讀取客戶端回傳數據。IPostDataHandler還提供了在用戶狀態改變的情況下來引發相應事件的框架。IPostDataHandler的定義如下:
public interface IPostBackDataHandler
{
public bool LoadPostData(string postDataKey,
NameValueCollection postCollection);
public void RaisePostDataChangedEvent();
}

對于LoadPostData函數,如果返回值為true,則會引發下面的RaisePostDataChangeEvent方法。這個方法中我們可以加入需要引發的事件,比如:
public virtual void RaisePostDataChangeEvent()
{
OnTextChanged(EventArgs.Empty);
}
這個方法有兩個參數,先說第二個參數,第二個參數返回鍵值對,key(鍵)是控件的unique id,這個id是通過客戶端的id來決定的,大多數情況下,這兩個id相等,比如客戶端的<input id=”xx” runat=”server” />則在服務端的unique id也會是”xx”,但是如果控件放在gridview或者masterpage里的話,uniqueid會是母控件的uniqueid+分隔符+子控件的uniqueid.而value(值)則是對應控件的回傳數據。比如下圖:


在頁面只有兩個控件,TextBox控件和Button控件,前兩個是asp.net內置的ViewState和驗證。而第三個是id名為”cc”的TextBox,第四個是id為Button1的button.則可以看出postCollection參數其實是頁面所有實現了IPostBackDataHandler接口的回傳數據,而第一個參數postDataKey則是這個方法所屬控件的uniqueid.
所以可以這樣來獲得本控件這一次的回傳數據:
postCollection[postDataKey]
當然也可以獲得其他控件這一次的回傳數據以達到和其它控件的交互,比如:
postCollection[3]

下面通過一個Demo來展示IPostDataHandler

DEMO1 ?自己寫一個擁有狀態的TextBox控件
通過這個Demo可以更清楚的讓我們明白ViewState和PostBack Data之間通過實現IPostDataHandler的交互。
代碼如下:
[ToolboxData("<{0}:textboxDemo runat=server></{0}:textboxDemo>")]
public class TextboxDemo : Control, IPostBackDataHandler
{
string _text;
public virtual string Text
{
get
{
object text = ViewState["Text"];
if (text == null)
return string.Empty;
else
return (string)text;
}
set
{
ViewState["Text"] = value;
}
}
public bool LoadPostData(string postDataKey,NameValueCollection postCollection)
{
Text = postCollection[postDataKey];
return false;
}
public virtual void RaisePostDataChangedEvent()
{

}
override protected void Render(HtmlTextWriter writer)
{
Page.VerifyRenderingInServerForm(this);
base.Render(writer);
//輸出 <INPUT type="text">標簽
writer.Write("<INPUT type=""text"" name=""");
writer.Write(this.UniqueID);
writer.Write(""" value=""" + this.Text + """ />");
}
}
這是一個簡單的TextBox實現。通過實現IPostBackDataHandler接口,我們可以在每次回傳到服務器后保存TextBox的狀態.即TextBox的Value的值.
注意在Render方法里有:Page.VerifyRenderingInServerForm(this);,這行代碼表示此控件必須在<form>標簽內,如果不在此標簽內,則會報錯.所有需要實現數據回傳的控件最好都要使用這個方法.
TextBoxDemo控件的使用方法這里就不再累述了。

ASP.net控件狀態
在asp.net 2.0以后的版本。可以通過設置控件的EnableViewState屬性來控制單個控件是否保存其狀態。在一些訪問量比較大的網站上,如果不注意關閉不需要的ViewState,則用戶在每回提交時都會導致傳送額外的ViewState字符串,這回導致性能問題.
控件的狀態還有一個很棒的特性是在即使ViewState被禁用的情況下,控件的狀態保持依然可用.
分類: 控件開發



本文轉自CareySon博客園博客,原文鏈接:http://www.cnblogs.com/CareySon/archive/2009/10/09/1579781.html,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的Asp.net控件开发学习笔记(六)----数据回传的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 综合一区 | 中文字幕无码乱码人妻日韩精品 | 91丨国产丨白丝 | 欧美日韩免费 | 亚洲视频a | 久草视频福利在线 | 四虎av影院 | av不卡免费在线 | 少妇高潮一区二区三区99小说 | 国产精欧美一区二区三区蓝颜男同 | 亚洲最新 | 蜜臀久久99精品久久久久久宅男 | 日韩不卡中文字幕 | 日本免费黄色网 | 午夜影院在线观看免费 | 一道本在线视频 | 欧美女优一区二区 | 欧美激情va永久在线播放 | 内射干少妇亚洲69xxx | 欧美色综合网站 | 96亚洲精品久久久蜜桃 | 欧美日韩18 | 精品福利一区 | 免费看毛片网站 | 国产精品ww| 亚洲色图网址 | 性高潮在线观看 | 超碰五月天| 欧美日韩一区二区三区国产精品成人 | 亚洲特级毛片 | 亚洲成人精品在线 | 欧美成人久久久 | 日韩每日更新 | 嫩草影院永久入口 | 欧美三级韩国三级日本三斤 | 亚洲 小说 欧美 激情 另类 | www.白白色| 亚洲经典一区二区 | 国产中文字幕一区 | 曰韩一级片 | 成人动漫av | 亚洲69av| 99国产精品免费视频 | 久久精品欧美日韩精品 | 欧美日韩免费 | 奇米影视第四色888 免费观看a毛片 | www香蕉视频 | 影音先锋黄色网址 | jizz一区二区| 蜜桃av久久久亚洲精品 | 国内外成人激情视频 | 成人av影院| 少妇av一区二区三区 | 欧美人妻一区二区三区 | 色在线视频观看 | 狠狠干狠狠撸 | 综合色爱 | 高潮一区| 男阳茎进女阳道视频大全 | 91色国产| 国产精品不卡在线 | 国产12页 | 日本精品视频在线观看 | 中文字幕在线视频日韩 | 一区二区三区四区视频在线观看 | 日韩久久一级片 | 国产剧情在线一区 | 夜夜狠狠擅视频 | 国产精品视频播放 | 中文字幕日韩精品亚洲一区小树林 | 黄色片网站免费在线观看 | 麻豆 国产 | 欧洲色播 | 国产成人久久 | 国产在线观看无码免费视频 | 日韩综合av | 一区精品视频在线观看 | 污片网站| 国产视频一区二区三区在线播放 | 午夜少妇av| 久久久久久久久99精品 | 男人的天堂久久久 | 都市豪门艳霸淫美妇 | 99re免费视频| 国产在线视频导航 | 三级视频网站在线观看 | 91女人18毛片水多国产 | 亚洲综合一区二区三区 | 夜夜操女人 | 蜜桃视频久久一区免费观看入口 | 操夜夜| 精品人妻一区二区三区久久夜夜嗨 | 扒开女人屁股进去 | 国产在线第一页 | 午夜影院91 | 国产黄色a | 无码精品在线视频 | 中文字幕免费高 | 国产精品一区二区无码免费看片 |