1

私は次のように私の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
4

1 に答える 1

1

リピーター項目のインデックスを使用して、LinkBut​​ton1内にコマンド引数を配置します。次に、右側のリピーター項目で行ったように、ラベルコントロールを見つけます。

編集:次のようなものを試してください:

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を残した場合に起動します。

于 2012-05-18T18:07:14.157 に答える