Обновить родительскую панель обновления от дочерней панели обновления - условно - PullRequest
0 голосов
/ 17 августа 2010

Я пытаюсь настроить панель обновления для обновления каждые X секунд, проблема в том, что я не хочу, чтобы элемент управления обновлялся, если нет новых данных. Таким образом, в настоящее время у меня есть дочерняя панель обновления в родительской панели обновления, дочерняя панель обновления обновляется таймером. Но я не могу найти способ инициировать обновление родительской панели. Опять же, только когда выполняются определенные условия (данные изменены).

Пример кода:

<asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="10000"></asp:Timer>
<asp:updatepanel id="upParent" runat="server" UpdateMode="Conditional">
    <ContentTemplate>    
        <asp:Label id="lblParenttime" Runat="server">Parent Time Here</asp:Label>     
        <asp:updatepanel id="upChild" runat="server" UpdateMode="Conditional">
            <ContentTemplate>
                <asp:Label id="lblChildtime" Runat="server">Child Time Here</asp:Label>
            </ContentTemplate>
            <triggers>
                <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
            </triggers> 
        </asp:updatepanel>  
    </ContentTemplate>
</asp:updatepanel>  

Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
   lblChildtime.Text = Now.Tostring
   if X = Y then
       'Cause Parent to Update
       lblParenttime.Text = Now.Tostring
   end if     
End Sub

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Вы пробовали upParent.Update() в событии Timer1_Tick при выполнении условий?

0 голосов
/ 18 августа 2010

Вы можете активировать JavaScript, когда вы обновляете UpdatePanel, используя следующий код JavaScript:

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(YourJavascriptFunctionNameHere);

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

Возможно, есть и другие идеи о том, как использовать add_pageLoaded в вашем сценарии, но это должно, по крайней мере, привести вас на правильный путь.

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