我从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
是否可以在此处添加按钮及其点击事件。
答案 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
。在此之前,我建议您在浏览器中尝试。