簡體   English   中英

動態添加按鈕控件及其Click事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM