Akhil Jain Ответов: 1

Как найти родительскую страницу gridview и привязать ее к событию пользовательского управления?


У меня есть страница .aspx
Contract.aspx
в котором есть пользовательский элемент управления


<%@ Register Src="../UserControls/ManageDocument.ascx" TagName="Document" TagPrefix="uc1" %>


а у userControl есть сетка. Теперь я хочу привязать сетку внутри пользовательского элемента управления, чтобы сохранить щелчок по какому-то условию

.ascx
partial class UserControls_ManageDocument : System.Web.UI.UserControl
{
protected void btnSave_Click(object sender, System.EventArgs e)
 {
   if (somecondions)
   {
   //bind the Parent page
    }
  }
}


Что я уже пробовал:

Я новичок asp.net кодер, пожалуйста, помоги мне. Я даже не знаю, возможно ли это вообще.

1 Ответов

Рейтинг:
2

Richard Deeming

Простой ответ: Не надо.

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

Вместо этого попросите пользовательский элемент управления вызвать событие, когда родительская сетка должна быть привязана. Содержащая страница может затем Подписаться на это событие и делать все, что ей нужно, когда оно возникает.

Пользовательский элемент управления:

using System;

partial class UserControls_ManageDocument : System.Web.UI.UserControl
{
    public event EventHandler BindGrid;
    
    protected void btnSave_Click(object sender, EventArgs e)
    {
        if (some conditions)
        {
            EventHandler handler = BindGrid;
            if (handler != null) handler(this, EventArgs.Empty);
        }
    }
}

Родительская страница:
<uc1:Document runat="server"
    OnBindGrid="BindGrid"
/>
protected void BindGrid(object sender, EventArgs e)
{
    // Bind the grid here...
}