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

时间:2014-10-22 20:57:05

标签: c# asp.net .net

我从Business层中的一个类生成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

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

3 个答案:

答案 0 :(得分:0)

我不确定你的确切需要,但如果我理解正确你在html中创建一个按钮或一系列按钮,需要在后端有一个事件来执行代码。

在这种情况下,我要做的是创建一个按钮单击,即使在后端检查文本或调用按钮的名称,并根据您的需要执行正确的代码:

protected void ButtonClick(object sender, EventArgs e)
{
  DoSomeCode(((System.Web.UI.WebControls.Button)sender).Text);
}

OR:

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);
    }

答案 1 :(得分:0)

是的你可以动态添加按钮,但它应该是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按钮

希望这可以帮助你

答案 2 :(得分:0)

当然,浏览器只需获取代码行并对其进行解释,因此请记下处理按钮点击的JavaScript代码,然后将其添加到HTML。在此之前,我建议您在浏览器中尝试。