![](/img/trans.png)
[英]ASP.NET WebForms Custom UserControl - base.SaveViewState() is returning null — why?
[英]Events in Asp.Net Webforms custom UserControl
我創建了一個新的Web用戶控件。 該控件有一個按鈕。 在此按鈕的click事件上,我以這種方式引發了一個事件:
public partial class SearchDate : UserControl, IPostBackEventHandler
{
private static readonly object ObjEvent = new object();
// delegates
public delegate void VoidDelegate();
// events
[Category("Action")]
[Description("Azionato quando si preme il cancella nel filtro data")]
public event VoidDelegate CancelSearchDate
{
add
{
Events.AddHandler(ObjEvent, value);
}
remove
{
Events.RemoveHandler(ObjEvent, value);
}
}
protected virtual void OnCancelSearchDate()
{
var cancelEvent = (EventHandler) Events[ObjEvent];
if (cancelEvent != null)
{
cancelEvent(this, new EventArgs());
}
}
protected void BtnSearchDateCancelClick(object sender, EventArgs e)
{
OnCancelSearchDate();
}
protected void Page_Load(object sender, EventArgs e)
{
}
public void RaisePostBackEvent(string eventArgument)
{
OnCancelSearchDate();
}
}
我創建了一個委托,一個事件,並在單擊按鈕時引發它。
在另一個托管該控件的Web表單中,我以這種方式向該事件添加了處理程序:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
return;
InitDateFilter(SearchDate);
}
protected void InitDateFilter(SearchDate searchDateControl)
{
searchDateControl.CancelSearchDate += SearchDateControlCancelSearchDate;
}
void SearchDateControlCancelSearchDate()
{
// other stuff
currUtente.FiltroData = null;
SaveSession();
}
當我單擊該按鈕時,它會嘗試評估事件,但它始終為null。 我是asp.net網絡表單的新手,對我來說似乎很奇怪,它不能很好地工作。 我試圖以更簡單的方式引發事件(在事件定義上沒有'add'和'remove'),如果事件不為null但行為相同,則僅調用該事件。
謝謝
嘗試僅覆蓋Page中的OnInit事件,然后在其中將處理程序添加到您的事件中。
像這樣:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
InitDateFilter(SearchDate);
}
讓我知道是否有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.