或您將其設爲回發調用服務器。在
ASPX寫:
<asp:Button runat="server" ID="buttonOpslaan" Text="opslaan" ></asp:Button>
代碼隱藏寫:
<asp:Button runat="server"
ID="buttonOpslaan"
OnClick="buttonOpslaan_Click"
Text="opslaan" ></asp:Button>
// mind: this method cannot be private, but has to be protected at least.
protected void buttonOpslaan_Click(object sender, EventArgs e)
{
//do something
}
或:
protected void Page_Init(object sender, EventArgs e)
{
buttonOpslaan.Click += new EventHandler(buttonOpslaan_Click);
}
// mind: this method can be private
void buttonOpslaan_Click(object sender, EventArgs e)
{
//do something
}
或與AutoEventWireUp(推薦),如處理它做它com pletely從後面的代碼:
// note: buttonOpslaan must have an (autoassigned) ID.
protected void Page_Init(object sender, EventArgs e)
{
Button buttonOpslaan = new Button();
buttonOpslaan.Text = "opslaan!";
buttonOpslaan.Click += new EventHandler(buttonOpslaan_Click);
form1.Controls.Add(buttonOpslaan);
}
protected void buttonOpslaan_Click(object sender, EventArgs e)
{
//do something
}
或處理它在你的ASPX與JavaScript客戶方(也不會到達服務器)
<script type="text/javascript">
function buttonOpslaan_Click(){
alert("test");
return false;
}
</script>
<asp:Button runat="server"
ID="buttonOpslaan"
OnClientClick="buttonOpslaan_Click()"
Text="opslaan" ></asp:Button>
更新:(通過評論)
如果通過事件處理程序添加控件(如dropdownlist
的onchange event
),則控件在下一次回發時會「丟失」,或者即使頁面發送到第(由於無狀態(沒有機制來維持應用程序狀態)行爲和.Net的lifecycle)。
因此,簡單地添加一個控件永遠不會工作。
這意味着你必須重建每次回發發生時間控制。我最喜歡的方式是在某處存儲一個列表/文檔,以說明每次必須創建哪些控件。其位置可能是,從糟糕到好(恕我直言):
畢竟,你要留言「數據「發送到服務器(表示控件),並且要將其保存以供進一步使用。
如果要創建的控制不那麼複雜,你可以實現一個工廠模式像一個WebControlFactory只存儲在一個列表或字典,這是閱讀每再重新創建控件時一些屬性(和再次,一次又一次)
不能使用aspx couse我使用編程代碼來添加按鈕。我嘗試了EventHandles,但仍然無法運行:/。 – Nico 2011-05-01 13:11:46
已更新的帖子;) – 2011-05-01 13:18:38
試着重新編寫按鈕的代碼片段,就像你說'完全從代碼背後完成'一樣,但是仍然,我點擊按鈕刷新頁面,清除整個頁面但沒有按照我的要求(嘗試一個測試標籤並點擊testlabel.text =「succes」,但olso卻什麼也不做) – Nico 2011-05-01 13:28:50