[英]Sever side created button doesn't fire click event
遵循在ASP.NET/HTML上找到的示例答案:ASP.NET(.cs)中HTML按鈕的onClick屬性
按鈕"Click Me!"
如果我在頁面上正常添加html按鈕,則可以使用。 如果使用ASP.NET VB.NET InnerHTML
將其添加到頁面InnerHTML
,則不會觸發該單擊。 有人知道為什么嗎?
下面是渲染HTML之后的內容。
下面是ASP.NET VB.NET代碼:
strTbl1 = "<table style='text-align:Left;'><tr class='spaceUnder'>"
strTbl1 = strTbl1 + "<td style=''><button id='Button1' OnServerClick='Button1_OnClick' runat='server'>Click me!</button></td></tr>"
strTbl1 = strTbl1 + "</table>"
Task1Assignees.InnerHtml = strTbl1
我嘗試了<input type=button...
, asp:Button ..
等,但是都沒有注冊click事件。 如果嘗試使用asp類型,那么也會出現JavaScript錯誤。
更新:
服務器端功能
Protected Sub Button1_OnClick(ByVal sender As Object, ByVal e As EventArgs)
MsgBox("hi")
End Sub
最終修復
因此,使用來自帶有循環的動態創建的Buttons VB.Net的示例以及下面的接受的答案,我能夠像這樣修復我的代碼
Page_Load (在IsPostBack檢查之外)
Task1Assignees.Controls.Clear()
For j As Integer = 0 To System.Web.HttpContext.Current.Session("intAssignees") Step 1
Dim btn As New Button
btn.Text = "Mark Completed"
btn.CssClass = "btn btn-success"
btn.ID = "btnAssignee" & j
AddHandler btn.Click, AddressOf Send
Task1Assignees.Controls.Add(btn)
Next
按鈕創建
System.Web.HttpContext.Current.Session("intAssignees") = ds1.Tables(0).Rows.Count
Task1Assignees.Controls.Clear()
For j As Integer = 0 To System.Web.HttpContext.Current.Session("intAssignees") Step 1
Dim btn As New Button
btn.Text = "Mark Completed"
btn.Cssclass = "btn btn-success"
btn.ID = "btnAssignee" & j
AddHandler btn.Click, AddressOf Send
Task1Assignees.Controls.Add(btn)
Next
按鈕功能
Sub Send()
Response.Redirect("~\Home.aspx")
End Sub
那是行不通的,但是您可以創建服務器端HTML控件。
var table = new HtmlTable();
var row = new HtmlTableRow();
var cell = new HtmlTableCell();
var btn = new LinkButton();
btn.Text = "Click Me!";
btn.Click += Button1_OnClick;
cell.Controls.Add(btn);
row.Cells.Add(cell);
table.Rows.Add(row);
Task1Assignees.Controls.Add(table);
1)嘗試將該按鈕更改為ASP:Button對象,而不是HTML按鈕。
2)如果不起作用,請將視圖從代碼視圖更改為設計視圖,然后雙擊按鈕,Visual Studio應自動創建方法(或者,在您的情況下,將您定向到將為按鈕執行代碼的方法點擊。)
3)如果不起作用,請從工具欄上拖放一個按鈕,然后雙擊並重復步驟2。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.