0
<asp:repeater id="rpt" run="server">
<ItemTemplate>
<asp:LinkButton id="Delete" runat="server" OnCommand="Delete_Command"></asp:linkButton>
<asp:label id="lblMessage" run="server">
</ItemTemplate>
</asp:repeater>

コードビハインド:

protected void Delete_Command(object sender, CommandEventArgument e)
{

}

Delete_Command で「lblMessage」への参照を取得する方法。

4

3 に答える 3

2

これを試して:

protected void Delete_Command(object sender, CommandEventArgs e)
{
    LinkButton button = (LinkButton)sender;
    Label label = (Label)button.NamingContainer.FindControl("lblMessage");
    // do something with the label
}

もし、あんたが:

  1. リピーターを縛った
  2. ViewState を有効にする
  3. ポストバックの早い段階でリピーターを再バインドしないでください

これはうまくいくはずです。そうでない場合は、ラベルの ID が実際に とまったく同じであることを確認してください...FindControl("lblMessage");。またrunat="server"、関連するすべてのコントロールで が設定されていることを確認してください。

編集:確認するもう 1 つのこと: マークアップ ファイル (.aspx ファイル) を検索し、コード ビハインドで同じイベントを使用する他のコントロールがあるかどうかを確認します。別のコントロールが同じイベント ハンドラーを使用していて、そのコントロールがリピーターにない場合、ラベルは見つかりません。

于 2013-07-09T06:27:11.867 に答える