0
我在页面上动态地添加一个用户控件,用户控件有一个保存按钮,它将用户控件和页面中的数据保存在数据库中,在同一个保存方法中,我想访问页面中的方法wrriten ,所以我mehod有代码来重新绑定网页中保存的网格。如何在动态添加的usercontrol中调用页面方法?
那么如何在动态添加的用户控件中调用页面方法?
我在页面上动态地添加一个用户控件,用户控件有一个保存按钮,它将用户控件和页面中的数据保存在数据库中,在同一个保存方法中,我想访问页面中的方法wrriten ,所以我mehod有代码来重新绑定网页中保存的网格。如何在动态添加的usercontrol中调用页面方法?
那么如何在动态添加的用户控件中调用页面方法?
我会建议创建页面基类,却发现一个更好的方式来完成这项任务:
http://www.codeproject.com/Articles/115008/Calling-Method-in-Parent-Page-from-User-Control
控制代码:
public partial class CustomUserCtrl : System.Web.UI.UserControl
{
private System.Delegate _delWithParam;
public Delegate PageMethodWithParamRef
{
set { _delWithParam = value; }
}
private System.Delegate _delNoParam;
public Delegate PageMethodWithNoParamRef
{
set { _delNoParam = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void BtnMethodWithParam_Click(object sender, System.EventArgs e)
{
//Parameter to a method is being made ready
object[] obj = new object[1];
obj[0] = "Parameter Value" as object;
_delWithParam.DynamicInvoke(obj);
}
protected void BtnMethowWithoutParam_Click(object sender, System.EventArgs e)
{
//Invoke a method with no parameter
_delNoParam.DynamicInvoke();
}
}
页代码:
public partial class _Default : System.Web.UI.Page
{
delegate void DelMethodWithParam(string strParam);
delegate void DelMethodWithoutParam();
protected void Page_Load(object sender, EventArgs e)
{
DelMethodWithParam delParam = new DelMethodWithParam(MethodWithParam);
//Set method reference to a user control delegate
this.UserCtrl.PageMethodWithParamRef = delParam;
DelMethodWithoutParam delNoParam = new DelMethodWithoutParam(MethodWithNoParam);
//Set method reference to a user control delegate
this.UserCtrl.PageMethodWithNoParamRef = delNoParam;
}
private void MethodWithParam(string strParam)
{
Response.Write(“<br/>It has parameter: ” + strParam);
}
private void MethodWithNoParam()
{
Response.Write(“<br/>It has no parameter.”);
}
}