[英]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.