[英]Create handler for dynamic buttons
我想為動態創建的按鈕添加處理。 我在 Stack 上看到的最接近的代碼是: asp.net dynamic button with event handler
我有下面的代碼,可以創建一個按鈕,但我想為每個按鈕都有一個處理程序。
到目前為止我的代碼:
Dim control As LiteralControl
control = New LiteralControl("<div class=""bar-row"">" & _
" <input value=""" & button & """ id=""" & id & """ class=""btnRisk"" type=""submit"">" & _
" <div class=""bar-data"">" & _
" <div class=""bar-inner"">" & _
" <div class=""bar bar-high"" style=""width: " & highPer & "%"">" & high & "</div>" & _
" <div class=""bar bar-med"" style=""width: " & medPer & "%"">" & medium & "</div>" & _
" </div>" & _
" </div>" & _
"</div>")
ChartArea.Controls.Add(control)
重要的部分是:
" <input value=""" & button & """ id=""" & id & """ class=""btnRisk"" type=""submit"">"
我不知道如何修改這個。
我需要將按鈕 ID 傳遞給發件人,然后執行某些操作,即
Public Sub Buttons(ByVal sender As Object, ByVal e As EventArgs)
If sender = "1" Then
'do something
End If
If sender ="2" Then
'something else
End If
End Sub
版本 2
ChartArea.Controls.Add(New LiteralControl("<div class=""bar-row"">"))
Dim vRiskActive As String = "btnRisk "
If id <> "btnMech" Then vRiskActive = vRiskActive + " risk-inactive"
Dim btnButton As New Button() With {.Text = button, .ID = id, .CssClass = vRiskActive}
AddHandler btnButton.Click, AddressOf button ' here Buttons is your Handler
ChartArea.Controls.Add(btnButton)
If id = "ContentMain_btnMech" Then
ChartArea.Controls.Add(New LiteralControl(" <div class=""bar-data"">" &
" <div class=""bar-inner"">" &
" <div class=""bar bar-high"" style=""width: " & highPer & "%"">" & high & "</div>" &
" <div class=""bar bar-med"" style=""width: " & medPer & "%"">" & medium & "</div>" &
" <div class=""bar bar-low"" style=""width: " & lowhPer & "%"">" & low & "</div>" &
" <div class=""bar bar-na"" style=""width: " & naPer & "%"">" & na & "</div>" &
" </div>" &
" </div>" &
"</div>"))
Else
ChartArea.Controls.Add(New LiteralControl(" <div class=""bar-data"">" &
" <div class=""bar-inner bar-inactive"">" &
" </div>" &
" </div>" &
"</div>"))
End If
值得注意的子部分...
Public Sub AddChartRow(ByVal button As String, ByVal id As String, ByVal high As Integer, ByVal medium As Integer, ByVal low As Integer, ByVal na As Integer)
我會建議更改您的 HTML 代碼並創建一個按鈕。 同樣在創建按鈕后,您可以嘗試為按鈕的事件添加處理程序。
ChartArea.Controls.Add(New LiteralControl("<div class=""bar-row"">"))
Dim btnButton As new Button() With { .Text = button,
.Id = id,
.CssClass = "btnRisk"
}
AddHandler btnButton.Click, AddressOf ButtonsID ' here Buttons is your Handler
ChartArea.Controls.Add(btnButton)
ChartArea.Controls.Add(New LiteralControl(" <div class=""bar-data"">" & _
" <div class=""bar-inner"">" & _
" <div class=""bar bar-high"" style=""width: " & highPer & "%"">" & high & "</div>" & _
" <div class=""bar bar-med"" style=""width: " & medPer & "%"">" & medium & "</div>" & _
" </div>" & _
" </div>" & _
"</div>"))
ChartArea.Controls.Add(control)
更多關於 AdressOf Operator 的信息可以在MSDN 中找到
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.