Могу ли я установить таймер в Ajax updatePannel на главной странице? - PullRequest
0 голосов
/ 25 февраля 2011

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

Таким образом, я поместил updatePannel с меткой и таймером внутри (очевидно, с scriptManager) на главной странице моего сайта.

Однако, когда я пытаюсь взаимодействовать с объектом timer1, я получаю сообщение об ошибке: "object not set to an instance of an object". Я не получаю это сообщение при размещении схемы на пустой странице (без главной страницы).

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

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

Спасибо!

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

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

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" />
<asp:UpdatePanel ID="updMessage" runat="server">
<ContentTemplate>
    <asp:Label ID="lblMessage" runat="server" />
    <asp:Timer ID="tmrMessage" Interval="5000" ontick="tmrMessage_Tick" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>

Из кодовой страницы главной страницы:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Session["Message"] = 1;
    }
}

protected void tmrMessage_Tick(object sender, EventArgs e)
{
    int message = (int)Session["Message"];
    lblMessage.Text = message.ToString();
    Session["Message"] = ++message;
}
0 голосов
/ 28 февраля 2011

Проблема была в том, где я ставил панель, ярлык и таймер.Я помещаю в contentPlaceHolder, где возникает проблема.Теперь я помещаю элемент управления в тег form, тогда проблема решена.

...