Обновить страницу ASP.NET, используя пользовательское событие - PullRequest
2 голосов
/ 25 ноября 2011

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

Когда я отлаживаю приложение, я вижу, что значение было обновлено, но на странице ничего не появляется.

ASPX

        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
            <ContentTemplate>
                <fieldset>
                <legend>UpdatePanel</legend>
                <asp:Label ID="xpto" runat="server" Text="zzzzzzzzzzzz"></asp:Label>
                </fieldset>
            </ContentTemplate>
        </asp:UpdatePanel>

Код позади

MessageHandling.DashboardRequests.Changed += new EventHandler(ListChanged);
...
...
...
private void ListChanged(object sender, EventArgs e)
{
    DateTime dt = DateTime.Now;
    xpto.Text = dt.ToString();
}

РЕДАКТИРОВАТЬ:

Если я изменю метод UpdateMode на Always и метод ListChanged на:

private void ListChanged(object sender, EventArgs e)
{
  DateTime dt = DateTime.Now;
  xpto.Text = dt.ToString();
  UpdatePanel1.Update();
} 

Я получаю следующую ошибку:

The Update method can only be called on UpdatePanel with ID 'UpdatePanel1' when UpdateMode is set to Conditional. 

И если я установлю UpdateMode на Условное, ничего не случится снова.

Если я создаю таймер и добавляю этот метод:

protected void Timer1_Tick(object sender, EventArgs e)
{
  DateTime dt = DateTime.Now;
  xpto.Text = dt.ToString();
}

XPTO корректно обновляется в методе таймера

1 Ответ

1 голос
/ 25 ноября 2011

Измените UpdateMode на Always в соответствии с предложением Ates.


(старый)

Код выглядит нормально, поэтому я сделаю WAG - вы обновляетеxpto.Text ВЕЗДЕ еще в жизненном цикле страницы?

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