利用Page.IsPostBack屬性保持用戶輸入的Framework
Batman
在大型應用中考慮到用戶在進行大量輸入工作時候,有可能要遇到下面這種情況。
例如用戶輸入的信息中的某幾項信息檢測失敗,服務器不得不把用戶輸入的信息重新
返回給用戶修改。這時就需要服務器把前面用戶輸入的信息重新返回給客戶端,而不是
簡單的讓用戶再次重新輸入煩瑣的信息內容。
在ASP+中,存在一種不同於以前的新的控件-服務器控件,它的原理是可以通過<Hidden>
元素中的信息保存用戶上次提交的信息,這個大家可以通過在浏覽器裡面vIEw source
看見服務器控件生成的客戶代碼便知。但是這裡面還存在一個問題,就是如果我的信息
是動態生成的話,一般就會在Page_Load事件中加入重新從數據庫中提取動態信息的列表
從而刷新那些動態改變的部分(一般是在下拉框的情況下),這樣就會導致<hide>的方法
失敗。
其實ASP+還提供了一個專門用來提高性能的屬性,那就是Page.IsPostBack屬性。該屬性
用來判斷網頁是否是提交回客戶端本身。這樣用這個屬性結合服務器控件就可以完整的
保持住用戶輸入的所有信息了。
例子的Framework如下:
<%@ Import Namespace="MYCOM" %>
<Script Runat="Server">
Sub Page_Load(Src as Object, E As EventArgs)
dim myDataObj as new MYCOM.DataObj
if Not Page.IsPostBack Then
drpCategories.DataSource = myDataObj.CategorIEs()
drpCategories.DataValueField = "FIEldName1"
drpCategories.DataTextField = "FIEldName2"
drpCategorIEs.DataBind()
End if
End Sub
</Script>
<form runat="Server">
<ASP:DropDownList Id="drpCategorIEs" runat="Server" />
<ASP:Button runat="Server" Text="查詢" />
</form>