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