Dre*_*TeK 2 vb.net asp.net repeater onclick itemcommand
我已经完成了我的研究但是找不到在VB中执行以下操作的有效方法:
我知道我可以使用ItemCommand选项,但无法使其按预期工作.
ASP.NET
内置中继器项目
<asp:Button ID="btnSave" RunAt="Server"/>
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
编辑:
在对SO进行了一些研究之后,我发现其他事件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
Run Code Online (Sandbox Code Playgroud)
然后,在Asp:Button
内部的标记上Asp:Repeater
,您必须设置其CommandName
属性,如下所示:
<Asp:Button ID="btnSave" runat="server" CommandName="Save" UseSubmitBehavior="false"/>
Run Code Online (Sandbox Code Playgroud)
看看这里了解更多关于UseSubmitBehavior
.
试试吧.
当按钮位于Repeater模板内时,需要添加OnClick事件,可以在ItemDataBound event
Repeater控件上添加事件。
您的 .aspx 代码将如下所示:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:Button ID="btnSave" runat="server" Text="SomeText" />
</ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)
代码隐藏
void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == Repeater1.AlternatingItem || e.Item.ItemType == Repeater1.Item)
{
var btn = e.Item.FindControl("btnSave") as Button;
if (btn != null)
{ // adding button event
btn.Click += new EventHandler(btn_Click);
}
}
}
void btn_Click(object sender, EventArgs e)
{
//write your code
}
Run Code Online (Sandbox Code Playgroud)
在 VB.NET 中
Private Sub Repeater1_ItemDataBound(sender As Object, e As RepeaterItemEventArgs)
If e.Item.ItemType = Repeater1.AlternatingItem OrElse e.Item.ItemType = Repeater1.Item Then
Dim btn = TryCast(e.Item.FindControl("btnSave"), Button)
If btn IsNot Nothing Then
' adding button event
btn.Click += New EventHandler(btn_Click)
End If
End If
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs)
'write your code
End Sub
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20566 次 |
最近记录: |