Должен быть способ связать мои данные в нужное время - PullRequest
1 голос
/ 02 июля 2010

Скажем, aspx-страница с именем theParent имеет элемент управления DataGrid с именем theDataGrid и UserControl с именем theUserControl , и theUserControl имеет кнопку с именем theUcButton .

Да, я знаю, очень оригинальное именование.

При нажатии theUcButton , изменяется переменная сеанса.

Эта переменная сеанса является параметром выбора для источника данных DataGrid.

Однако из-за порядка вещей, вызываемых в жизненном цикле страницы, при нажатии theUcButton и создании обратной передачи , theParent элементы управления загружаются до theUserControl сбрасывает переменную сеанса, и theDataGrid не показывает новые данные до следующей обратной передачи.

Как мне получить то, что я хочу работать?

Я использую 3,5, если это имеет значение.

Ответы [ 3 ]

1 голос
/ 02 июля 2010

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

public partial class WebUserControl : System.Web.UI.UserControl{
public event EventHandler Updated;

protected void Button1_Click(object sender, EventArgs e)
{
    //do some work to this user control

    //raise the Updated event
    if (Updated != null)
        Updated(sender, e);
}}

Затем со своей страницы .aspx вы будете иметь дело с новым событием, как обычно

    <uc1:WebUserControl ID="WebUserControl1" runat="server" OnUpdated="WebUserControl1_Updated" />

Код позади:

protected void WebUserControl1_Updated(object sender, EventArgs e)
{
    //handle the user control event
}
1 голос
/ 02 июля 2010

Вы можете объявить событие как член класса UserControl, вызвать его и обработать в классе Page.

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

0 голосов
/ 02 июля 2010

Самый простой способ - задержать привязку данных до более позднего этапа жизненного цикла, такого как событие Page.PreRender, как предложил joelt.Если вы выполните связывание, у вас должны быть переменные сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...