0

投稿のどのコントロールがポストバックを引き起こしたかで提案を試みましたが、私の場合は機能しません。コントロール名には、UserControl 名がプレフィックスとして付けられます。UserControl に動的に追加されたコントロールへの参照を取得する方法はありますか?

4

3 に答える 3

1

これを試して:

if (IsPostBack)
{ 
  var targetID = Request.Form["__EVENTTARGET"];
  if (!String.IsNulOrEmpty(targetID)
  {
      var targetControl = this.Page.FindControl(targetID);
  }
}
于 2013-10-07T21:54:09.303 に答える
0

イベントを公開するユーザーコントロールを持つことができます。aspx ページのコード ビハインドには、そのようなイベントで呼び出されるメソッドが必要です。

public delegate void EventFiredHandler(object sender);

public class MyUserControl: UserControl
{
    public event EventFiredHandler EventFired;

    //Let all your button clicks in usercontrol share this event sink
    void Button1_Click(object sender, EventArgs e)
    {
        if(EventFired != null)
        {
            EventFired(sender);
        }
    }
}

aspx マークアップでは、次のように記述します。

<uc1:MyUserControl runat="server" 
    EventFired="UCControl_EventFired"></uc1:MyUserControl>

aspx コード ビハインド:

protected void UCControl_EventFired(object sender)
{
    //Obtaining reference of control in usercontrol 
    // which caused event
    Button btn = (Button) sender;
}
于 2013-10-12T06:06:24.043 に答える