Я пишу приборную панель, которая настроена на запуск на экране телевизора. Я довольно новичок в asp.net (обычно делаю php), поэтому просто у меня есть 3-хместные держатели, которые я бы хотел прокрутить по таймеру asp. Я пытаюсь сделать это через атрибут видимости на заполнителе. У меня в настоящее время возникают проблемы с тем, чтобы он действительно просматривал таймер. Мне кажется, что мне нужно каким-то образом передать значения в код, но я не уверен, как это сделать. Любая помощь будет оценена по достоинству.Change PlaceHolders visibility on timer tick
Примечание: onpage_load
работает отлично (показывает панель1), а первый tick_event
также работает (скрывает панель 1 и показывает панель2), но затем я застреваю на панели 2, и страница не перемещается оттуда.
Page
<asp:Content ID="MainContent" runat="server" ContentPlaceHolderID="MainContent">
<div class='container_12' id='content'>
<asp:UpdatePanel ID="UPmaincontent" runat="server" visible="true" UpdateMode="Conditional">
<ContentTemplate>
<asp:PlaceHolder ID="Panel1" visible="false" runat="server">
<div class='grid_12' id='Emailbreakdown'>
</div>
</asp:PlaceHolder>
<asp:PlaceHolder ID="Panel2" visible="false" runat="server">
<div class='grid_12' id='WObreakdown'>
</div>
</asp:PlaceHolder>
<asp:PlaceHolder ID="Panel3" visible="false" runat="server">
<div class='grid_12' id='IRbreakdown'>
</div>
</asp:PlaceHolder>
</ContentTemplate>
</asp:UpdatePanel>
<div class='clear'> </div>
<asp:Timer ID="Tmaincontent" runat="server" Interval="10000" OnTick="Tmaincontent_Tick"></asp:Timer>
</div>
Код За
protected void Page_Load(object sender, EventArgs e)
{
Panel1.Visible = true;
Panel2.Visible = false;
Panel3.Visible = false;
}
public void Tmaincontent_Tick(object sender, EventArgs e)
{
if (Panel1.Visible == true)
{
Panel1.Visible = false;
Panel2.Visible = true;
Panel3.Visible = false;
UPmaincontent.Update();
}
else if (Panel2.Visible == true)
{
Panel1.Visible = false;
Panel2.Visible = false;
Panel3.Visible = true;
UPmaincontent.Update();
}
else
{
Panel1.Visible = true;
Panel2.Visible = false;
Panel3.Visible = false;
UPmaincontent.Update();
}
}
Я попробовал ваше решение, похоже, не работает (пробовал это несколько способов), как я был в состоянии свернуть с on_page нагрузки (с указанием ПАНЕЛЬ1) к Отметьте событие (которое скрыло панель1 и показало панель2), тогда оно просто останется на панели 2 и остановится там в цикле. – user1448215
Я пересмотрю свой ответ и опубликую полный код, который я использовал. Он был слегка оптимизирован, но у него были изменения в структуре if/else, чтобы это могло произойти. –
Собственно, ваш код для события OnTick в порядке (я просто его протестировал). Вы добавили две строки в событие OnLoad, правильно? –