2012-06-26 2 views
0

Я добавляю пользовательский элемент управления динамически на странице, пользовательский элемент управления имеет кнопку сохранения, которая берет данные из пользовательского элемента управления и страницы для сохранения в БД, в том же методе сохранения. Я хочу получить доступ к методу wrriten на странице , так что я, что mehod имел код для повторной привязки сетки, хранящейся на странице.Как вызвать метод страницы в динамически добавленном usercontrol?

Как я могу вызвать метод страницы в динамически добавленном пользовательском элементе управления?

ответ

2

Я собирался предложить создание базового класса для ваших страниц, но нашел еще лучший способ для решения этой задачи:

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.”); 
    } 
} 
Смежные вопросы