以编程方式创建的按钮不起作用单击事件?

时间:2019-01-01 10:51:47

标签: asp.net vb.net

我的步骤有什么问题?

Do While dread1.Read()
    way = dread1.Item(0).ToString
    sb.Append("<tr ><td>" & dread1.Item(2) & "</td>" + "<td>" & dread1.Item(5) & "</td>" + 
       "<td>" & dread1.Item(0) & "</td>" + 
       "<td><asp:LinkButton runat='server' id='waybutton' class='btn btn-success' on='waybill_Click' />" & dread1.Item(6) & "</td>" + 
       "<td>" & dread1.Item(7) & "</td>" + "<td>" & dread1.Item(8) & "</td>" +
       "<td>" & dread1.Item(9) & "</td>" + "<td>" & dread1.Item(10) & "</td>" + 
       "<td>" & dread1.Item(11) & "</td>" + "<td>" & dread1.Item(12) & "</td>" +  
       "<td>" & dread1.Item(14) & "</td>" + "</tr>")

    l.Text = sb.ToString
    tr1.Controls.Add(l)
Loop

Protected Sub waybill_Click(sender As Object, e As EventArgs)
    Response.Redirect("")
End Sub

1 个答案:

答案 0 :(得分:0)

您的代码显示在此行中: <asp:LinkButton runat='server' id='waybutton' class='btn btn-success' on='waybill_Click' />
您想通过字符串内容添加ASP.NET动态控件并呈现它,这在ASP.NET中是不可能像您所做的那样将某些ASP.Net控件作为HTML字符串添加到页面中,但是您可以将HTML元素添加为字符串,因此可以轻松地将HTML button元素作为<button onclick="clientFunction()">Click Me</button>添加到页面,因为HTML可以呈现该字符串,另一方面,不可能直接使用HTML元素,例如通过HTML waybill_Click触发button(可能有一些技巧)。

无论如何,如果您想添加ASP.Net动态控件并为其添加事件,请查看here或google ASP.Net dynamic control

更新:

sb.Append("<tr ><td>" & dread1.Item(2) & "</td>" + "<td>" & dread1.Item(5) & "</td>" + 
       "<td>" & dread1.Item(0) & "</td>" + 
       "<td><a id='waybutton' class='btn btn-success' href="redirectPage.aspx">Link Title</a>" & dread1.Item(6) & "</td>" + 
       "<td>" & dread1.Item(7) & "</td>" + "<td>" & dread1.Item(8) & "</td>" +
       "<td>" & dread1.Item(9) & "</td>" + "<td>" & dread1.Item(10) & "</td>" + 
       "<td>" & dread1.Item(11) & "</td>" + "<td>" & dread1.Item(12) & "</td>" +  
       "<td>" & dread1.Item(14) & "</td>" + "</tr>")

但是如果您需要添加动态asp:LinkButton,则需要拥有一个ASP.NET持有人控件,例如PanelForm,然后像这样添加到其中:

 protected void Page_Load(object sender, EventArgs e)
 {
    LinkButton lnkRedirect = new LinkButton();
    lnkRedirect.ID = "lnkRedirect1";
    lnkRedirect.Text = "Redirect";
    lnkRedirect.Click+=new EventHandler(lnkRedirect_Click);
    form1.Controls.Add(lnkRedirect);
 }
 protected void lnkRedirect_Click(object sender, EventArgs e)
 {
    Response.Redirect("");
 }

这只是一个示例ASP.Net C#代码,如果您想将ASP.Net控件添加到该表中,那么根据您设计的HTML表就可以了。
您应该使用纯ASP.Net或纯HTML来实现动态目的。

at the end this link may help you.