我在我的asp.net页面中使用了一个asp.net转发器,如下所示:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:Label ID="lblsSICCode" runat="server" Text='<%# Eval("sSICCode") %>'></asp:Label>
<asp:LinkButton ID="lnkSelect" runat="server" CommandArgument='<%# Eval("sSICCode") %>' OnCommand="LinkButton1_Command" CommandName="MyUpdate">Select</asp:LinkButton>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("sSICCode") %>'></asp:Label>
</ItemTemplate>
</asp:Repeater>
我想在点击链接按钮时更改标签文本。我正在使用以下代码,但它会更改所有转发器的标签。所选行前面的Label1应该获得mylabel的值。
Protected Sub LinkButton1_Command(sender As Object, e As CommandEventArgs)
If e.CommandName = "MyUpdate" Then
For Each RI As RepeaterItem In Repeater1.Items
Dim MyLabel As Label = TryCast(RI.FindControl("lblsSICCode"), Label)
If MyLabel IsNot Nothing Then
If MyLabel.Text = e.CommandArgument Then
Response.Write(e.CommandArgument + "<br />")
End If
End If
Next
End If
End Sub
答案 0 :(得分:0)
在LinkButton1中放置一个命令参数和转发器项的索引。接下来,在右侧转发器项中找到Label控件。
编辑:尝试这样的事情:
Private Sub Repeater1_ItemCommand(source As Object, e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles Repeater1.ItemCommand
If e.CommandName.Equals("MyUpdate") Then
Dim MyLabel As Label = TryCast(e.Item.FindControl("lblsSICCode"), Label)
Dim Label1 As Label = TryCast(e.Item.FindControl("Label1"), Label)
If MyLabel IsNot Nothing Then
Label1.Text = MyLabel.Text
End If
End If
End Sub
如果将CommandName保留在转发器内的Linkbutton中,则会触发上述事件处理程序。