更改链接按钮上的标签单击转发器内部

时间:2012-05-18 18:02:29

标签: asp.net vb.net

我在我的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

1 个答案:

答案 0 :(得分:0)

在LinkBut​​ton1中放置一个命令参数和转发器项的索引。接下来,在右侧转发器项中找到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中,则会触发上述事件处理程序。