[英]Adding Button Control Dynamically and it Click event
我正在從業務層的類生成html。這是我的代碼及其在循環內。
html = html + "<tr><td>" + Convert.ToString(dr["RowNumber"]) + "</td>" +
"<td>" + Convert.ToString(dr["ReportName"]) + "</td>" +
"<td>" + Convert.ToString(dr["ReportJob"]) + "</td>" +
"<td>" + Convert.ToString(dr["RID"]) + "</td></tr>"; //need to a button or link button to call server side method
是否可以在此處添加按鈕及其單擊事件。
我不確定您的確切需求,但是如果我理解正確,您將在html中創建一個按鈕或一系列按鈕,這些按鈕需要在后端具有一個事件以執行代碼。
在這種情況下,我要做的就是即使在后端也要單擊按鈕,以檢查調用按鈕的文本或名稱,並根據需要執行正確的代碼:
protected void ButtonClick(object sender, EventArgs e)
{
DoSomeCode(((System.Web.UI.WebControls.Button)sender).Text);
}
要么:
protected void ButtonClick(object sender, EventArgs e)
{
Switch(((System.Web.UI.WebControls.Button)sender).Text)
{
Case "Button1":
//Do something
Case "Button2":
//Do something else
etc....
}
}
生成按鈕時,您需要在html中放置一個占位符以容納按鈕,然后在后面的代碼中將它們添加到循環中:
List<Button> buttonList = new List<Button>();
for (int i = 0; i < 2; i++)
{
Button test = new Button();
test.Text = i.ToString();
test.Click += new EventHandler(ButtonClick);
placeholder.Controls.Add(test);
}
是的,您可以動態添加按鈕,但是它應該是html按鈕,並且必須觸發該按鈕
通過使用表單中的腳本
在您的業務層中
<td><button onClirntclick='btClick2()' id=' + Convert.ToString(dr["RID"]' text='submit') +'></button></td></tr>";
並在腳本中
<script type="text/javascript">
function btClick2()
{
return confirm('OnClientClick script: Press OK to continue.');
// do your work
}
</script>
因為它將按鈕以純文本格式顯示,所以您必須動態編寫html按鈕
希望這對您有幫助
當然,瀏覽器僅接受代碼行並對其進行解釋,因此請寫下處理按鈕單擊的JavaScript
代碼,然后將其添加到HTML
。 在此之前,建議您在瀏覽器中嘗試一下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.