Вызов метода на родительской странице от пользовательского элемента управления

Проблема была решена, когда мы использовали R\u00E9initialiser la recherche вместо Réinitialiser

39
задан Ali Soltani 27 December 2017 в 14:05
поделиться

4 ответа

Вот события использования классического примера, как предложил Freddy Rios (C# из проекта веб-приложения). Это предполагает, что Вы хотите использовать существующего делегата, а не сделать Ваше собственное, и Вы не передаете ничего характерного для родительской страницы событием args.

В коде пользовательского элемента управления - позади (адаптируются по мере необходимости, не используя код - позади или C#):

public partial class MyUserControl : System.Web.UI.UserControl
{
    public event EventHandler UserControlButtonClicked;

    private void OnUserControlButtonClick()
    {
        if (UserControlButtonClicked != null)
        {
            UserControlButtonClicked(this, EventArgs.Empty);
        }
    }

    protected void TheButton_Click(object sender, EventArgs e)
    {
        // .... do stuff then fire off the event
        OnUserControlButtonClick();
    }

    // .... other code for the user control beyond this point
}

На самой странице Вы подписываетесь на событие с чем-то вроде этого:

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // hook up event handler for exposed user control event
        MyUserControl.UserControlButtonClicked += new  
                    EventHandler(MyUserControl_UserControlButtonClicked);
    }
    private void MyUserControl_UserControlButtonClicked(object sender, EventArgs e)
    {
        // ... do something when event is fired
    }

}
114
ответ дан Stephen M. Redd 27 November 2019 в 02:03
поделиться

Снимите страницу в качестве определенной страницы в Вашем проекте:

((MyPageName)this.Page).CustomMethod()
14
ответ дан Rex M 27 November 2019 в 02:03
поделиться

Я предлагаю, чтобы Вы не называли метод страницы непосредственно, поскольку Вы связали бы свое управление с определенной страницей.

Вместо этого представляют событие и имеют страницу, подписываются на него. Это работает на любое число страниц, может более легко использоваться, когда управление находится многократно на единственной странице (возможно, даже в списке) и больше соответствует дизайну asp.control.

10
ответ дан eglasius 27 November 2019 в 02:03
поделиться

Скотт Аллен имеет полезную статью о переходе событий от пользовательского элемента управления к родительской странице, в которой подробно описывается ответ, предоставленный Стивеном М. Реддом :

4
ответ дан 27 November 2019 в 02:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: