C# 动态添加按钮控件并单击事件

C# 动态添加按钮控件并单击事件,c#,asp.net,.net,C#,Asp.net,.net,我正在从业务层的一个类生成html。下面是我的代码及其在循环中的部分 html = html + "<tr><td>" + Convert.ToString(dr["RowNumber"]) + "</td>" + "<td>" + Convert.ToString(dr["ReportName"]) + "</td>" + "<td>" +

我正在从业务层的一个类生成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);
}
或:

生成按钮时,请执行一些操作,例如在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中。在此之前,我建议您在浏览器中试用。

如果您只是生成HTML,请确定。只需像生成其他所有内容一样生成按钮的代码。除非你指的是别的东西。@AriRoth我试过这样做。按钮按钮更改=新按钮;ButtonChange.Text=编辑;ButtonChange.ID=编辑+转换.toString[RID];ButtonChange.Font.Size=FontUnit.Point7;ButtonChange.Click+=新建System.EventHandlerbtnSubmit\u单击;然后进行渲染控制,但它不起作用。用asp按钮连接字符串?你写过什么?你试过吗?Dazzle是正确的。很抱歉,我很久以前就这么做了,但在发布代码时还没有测试。Asp.Net按钮在呈现时会替换为html输入,因此仅将一个按钮插入html将不起作用。如果您愿意,我已将答案调整为动态使用Asp.net控件。
<script  type="text/javascript">
function btClick2()
  {
  return confirm('OnClientClick script: Press OK to continue.');
// do your work
  }
</script>