我已经完成了研究,但找不到在 VB 中执行以下操作的有效方法:
- 每个按钮都应触发相同的事件。
- 按钮事件保存每个重复器项目,因此每个事件不是唯一。
我知道我可以使用 ItemCommand 选项,但无法使其按预期工作。
ASP.NET
中继器内部项目
<asp:Button ID="btnSave" RunAt="Server"/>
VB.NET
Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs)
sqlConn.Open()
For Each Item As RepeaterItem In rpt.Items
...
Next
sqlConn.Close()
End Sub
最佳答案
编辑:
经过对 SO 的一些研究,我 found ItemCommand
之外的其他事件不会被 Asp:Repeater
捕获,如 FlySwat在他的回答中说道。因此,您需要像这样编写 VB.NET
代码:
首先,在页面上声明 ItemCommand
事件,如下所示:
Protected Sub rpt_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles rpt.ItemCommand
If e.CommandName = "Save" Then
'Save
End If
End Sub
然后,在 Asp:Repeater
内的 Asp:Button
标记上,您必须如下设置其 CommandName
属性:
<Asp:Button ID="btnSave" runat="server" CommandName="Save" UseSubmitBehavior="false"/>
看看here了解有关 UseSubmitBehavior
的更多信息。
尝试一下。
关于asp.net - 如何从中继器内部触发按钮事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20540675/