动态添加按钮控件及其单击事件

本文关键字:单击 事件 控件 添加 按钮 动态 | 更新日期: 2023-09-27 18:27:26

我正在从业务层中的一个类生成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

是否可以在此处添加按钮及其单击事件。

动态添加按钮控件及其单击事件

YES您可以动态添加按钮,但它应该是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中。在此之前,我建议您在浏览器中进行尝试。

我不确定您在这里的确切需求,但如果我理解正确,您将在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);
    }