1

ItemCommand が起動した RepeaterItem に関連付けられたデータにアクセスしたいと考えています。シナリオは、コマンドが次のように宣言的に設定されている Button コントロールの RepeaterItems が複数あることです。

<asp:Repeater ID="Repeater3" 
              runat="server" 
              DataSource='<%# ClientManager.GetClientEmployees(Eval("ClientID")) %>' 
              OnItemCommand="RemoveEmployeeFromClient">
    <ItemTemplate>
        <asp:LinkButton ID="LinkButton1" 
                        runat="server" 
                        Text="(x)" 
                        CommandName="RemoveEmployeeFromClient">
        </asp:LinkButton>
    </ItemTemplate>

    <SeparatorTemplate>,<br /></SeparatorTemplate>
</asp:Repeater>

背後にあるコードは次のとおりです。

Protected Sub RemoveEmployeeFromClient(ByVal source As Object, 
                                       ByVal e As RepeaterCommandEventArgs)
    ' I want to access the data associated with 
    ' the RepeaterItem which the Button was clicked.
End Sub
4

2 に答える 2

4

e.Item.DataItemを使用してオブジェクトのデータを取得するか、非表示フィールドに保存することができます。

于 2009-05-20T06:48:10.520 に答える
1

Mitchelが言ったことに基づいて、RowTypeがDataRowであることを確認してください。あなたができないときにがらくたをしたくない。e.Item.DataItemからタイプへのキャストは、ヘッダーまたはフッターの行で失敗します。

于 2009-05-20T06:52:11.217 に答える