在某些情况下,需要引发一个回发事件。一种方案是使用隐藏的按钮控件,使用js激发按钮的onclick事件。比较优雅的方案则是实现IPostBackEventHandler接口。
public partial class DataForm : : System.Web.UI.Page, IPostBackEventHandler
{
private string m_OnSortCallback;
protected void Page_Load(object sender, EventArgs e)
{
this.m_OnSortCallback = ClientScript.GetPostBackEventReference(this, "ON_SORT");
}
}
以上代码通过调用GetPostBackEventReference方法获得一个客户端回发函数调用代码,类似于__doPostBack('__Page','ON_SORT');
可以在客户端执行<%= this.m_OnSortCallback%>; 回发到后台后,通过第2个参数区分事件的不同类型,可做分支处理.
#region IPostBackEventHandler 成员
public void RaisePostBackEvent(string eventArgument)
{
if (String.Compare(eventArgument, "ON_SORT", true) == 0)
{
...;
}
else if(...)
...
}
#endregion