0
我實現了處理回發事件的自定義控件內射擊:自定義控件事件不是用戶控制
namespace CalendarControls
{
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
public class CalendarPostback : WebControl, IPostBackEventHandler
{
public delegate void CalendarPostBackHandler(object sender, CalendarPostbackEventArgs e);
public event CalendarPostBackHandler CalendarPostBack;
public CalendarPostback()
{
}
#region IPostBackEventHandler Members
public void RaisePostBackEvent(string eventArgument)
{
string[] values = eventArgument.Split('|');
CalendarPostbackEventArgs args = new CalendarPostbackEventArgs();
args.EventType = (eEventType)Convert.ToInt32(values[0]);
if (args.EventType == eEventType.Insert)
args.EventDate = Convert.ToDateTime(values[1]);
else
args.EventId = Convert.ToInt32(values[1]);
if (CalendarPostBack != null)
CalendarPostBack(this, args);
}
#endregion
}
public class CalendarPostbackEventArgs : EventArgs
{
public CalendarPostbackEventArgs()
{
}
public eEventType EventType
{
get;
set;
}
public DateTime EventDate
{
get;
set;
}
public int? EventId
{
get;
set;
}
}
}
,我使用一個用戶控件此自定義控件,並稱之爲一個按鈕點擊我的用戶內用下面的JavaScript代碼:
function CallPostBack(eventArguments) {
__doPostBack('<%=ctl1.ClientID %>', eventArguments);
}
和我的HTML代碼在用戶控件:
<input type="button" value="Insert" onclick="CallPostBack('1|2014/06/12')" />
<CalendarControls:CalendarPostback ID="ctl1" runat="server" ClientIDMode="Static" OnCalendarPostBack="ctl1_CalendarPostBack" />
但當我點擊我的按鈕,頁面回發發生但ctl1_CalendarPostBack事件沒有被解僱。我也必須說,我直接添加用戶控件到aspx頁面(不是動態的),我的aspx頁面有一個母版頁。 現在我有兩個問題:
- 我的代碼有什麼問題?如何解決這個問題?
- 如果我想將自定義控件添加到更新面板,並且想要發回異步帖子,我必須做什麼?
謝謝你, 最好的問候