自定義控制項的構建 7

2022-01-11 05:16:23 字數 2606 閱讀 9322

share

在處理回傳事件中,還需要考慮的因素就是事件引數和選項

傳遞歸傳事件引數

前面曾提到getpostbackclienthyperlinkc(),可以為其提供乙個可選引數,其在引發回傳時從瀏覽器傳到伺服器,它的值傳遞到伺服器的

raisepostbackevent()中,這裡實現的功能類似於gridview的分頁功能,單擊時顯示某一頁資料

namespace handlepostback
set
}
protected

override

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);
}
public

void 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上檢視其屬性。

//使用回傳選項
public

class handlepostopticescontrol : webcontrol

set
}
private

string _postbackurl;

public

string postbackurl

set
}
protected

override

void addattributestorender(htmltextwriter writer)

protected

override htmltextwritertag tagkey

}
protected

override

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時,控制項所包含的內容將作為控制項的...