C# 动态添加按钮控件并单击事件
我正在从业务层的一个类生成html。下面是我的代码及其在循环中的部分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 + "<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>