2012-02-16 9 views
0

ASP.NETリピーターがあります。そのItemTemplateはProviderControlというWebUsercontrolです。ASP.NETリピータのWebユーザーコントロール内のボタンコマンドに反応します。

<asp:Repeater ID="rep" runat="server" OnItemDataBound="rep_ItemDataBound"> 
    <ItemTemplate> 
     <custom:ProviderControl ID="row" runat="server" /> 
    </ItemTemplate> 
</asp:Repeater> 

カスタムコントロールにItemDataBoundイベントのデータを入力しています。

私は、プロバイダのコントロールの中に、私が含まれているページで反応できるようにしたいボタンが2つあります。 私はコマンドとコマンドの引数があることを知っていますが、どうしたらいいですか?

コマンドを使用するより簡単な方法はありますか?

答えて

1

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e) 
    { 
     Button btn = e.CommandSource as Button; 
     Response.Write(btn.ID); 
    } 
+0

ボタンがリピーターのすぐ下にある場合は、これが機能します。しかし、私の場合、ボタンはもう一度別のコントロールの中にあります。 e.CommandSourceは正しいButtonコントロールを見つけますか? – John

+0

@John - はい!そうなる。 – adatapost

+0

ありがとうございますが、イベントはページレベルでは処理されません。私はユーザーコントロールのボタンにCOmmandName属性を追加しました。それは私がする必要があるのですか? ItemCommandイベントを発生させるためにページ内のリピータを設定しました。他に何か? – John

関連する問題