share
在處理回傳事件中,還需要考慮的因素就是事件引數和選項
傳遞歸傳事件引數
前面曾提到getpostbackclienthyperlinkc(),可以為其提供乙個可選引數,其在引發回傳時從瀏覽器傳到伺服器,它的值傳遞到伺服器的
raisepostbackevent()中,這裡實現的功能類似於gridview的分頁功能,單擊時顯示某一頁資料
namespace handlepostback
set
}
protectedoverride
void rendercontents(htmltextwriter writer)
writer.addattribute(htmltextwriterattribute.href, eref);
writer.renderbegintag(htmltextwritertag.a);
writer.write("", i + 1);
writer.renderendtag();
writer.write("] ");
}
}
private gridview getcontroltopage()
return (gridview)page.findcontrol(_controltopage);
}
publicvoid raisepostbackevent(string eventargument)
} }
測試部分的主要**
<div>
<handleps:handleposteventparamscontrol
id="paramscontrol1"
controltopage="gridview1"
runat="server"
/>
<asp:gridview
id="gridview1"
datasourceid="sql1"
runat="server"
allowpaging="true"
pagesize="2"
pagersettings-visible="false"
>
asp:gridview
>
當頁面呈現在瀏覽器時,生成類似下面的鏈結div>
當單擊頁面時,關聯的頁面傳回到伺服器,raisepostbackevent()接受該頁碼並更改它關聯的gridview所顯示的分頁
處理回傳選項這裡主要用到的類是postbackoptions類,可以到msdn上檢視其屬性。
//使用回傳選項
publicclass handlepostopticescontrol : webcontrol
set
}
privatestring _postbackurl;
publicstring postbackurl
set
}
protectedoverride
void addattributestorender(htmltextwriter writer)
protectedoverride htmltextwritertag tagkey
}
protectedoverride
void rendercontents(htmltextwriter writer)
}
}
這個控制項可以用來支援跨頁提交,當控制項被單擊時,表單被提交到postbackurl所指定的頁面,在addattributestorender()中,建立了postbackoptions類的例項,其用於修改actionurl以支援跨頁提交,該例項傳遞給getpostbackeventreference(),生成用於引發回發的js
演示部分的關鍵**
<handleps:handlepostopticescontrol
id="postopticescontrol1"
runat="server"
text="高階選項"
postbackurl="teststatecontrol.aspx"
/>
<asp:textbox
id="textbox2"
runat="server"
>
asp:textbox
>
本文參考了《asp.net 3.5揭秘 (卷2)》
自定義控制項的構建(14)
share 在asp.net中與資料打交道接觸最多的可能就是各類資料來源控制項了,這篇在前面的基礎上構建乙個模板化的資料繫結控制項 資料繫結控制項 我們現在建立乙個繼承compositedataboundcontrol的控制項,其可以在中顯示一批資料項 和前面的內容一樣,我們首先實現乙個實現idat...
自定義控制項的構建 9
share 前面重點介紹了parsechildren特性,當其為false時,控制項的內容會自動的解析成控制項的子控制項,這時控制項內包含的所有內容都會新增到controls集合中,而控制項內任何非伺服器控制項將解析成literal控制項,某些時候可能僅允許一種控制項被新增到controls集合裡。...
自定義控制項的構建 8
share 在前面的幾節基礎上,現在我們開始涉足構建物件集合的控制項,以gridview而言,其內部就包含了多個databoundfield控制項來表示所要顯示的各個列。首先了解名為parsechildren的特性,其用來決定如何解析控制項包含的內容 值為true時,控制項所包含的內容將作為控制項的...