繁体   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