动态添加按钮控件及其单击事件
本文关键字:单击 事件 控件 添加 按钮 动态 | 更新日期: 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);
}