2012-03-20 6 views
0

У меня есть UpdatePanel, который запускается с помощью элемента управления Menu (MenuItemClick). В UpdatePanel существует ретранслятор с источником данных XML. После нажатия кнопки меню будет обновлен источник XML-данных XPath of Repeater, и повторитель отобразит обновленные данные.ASP.NET: обновления UpdatePanel только один раз

Проблема заключается в том, что UpdatePanel только обновляется/обновляется один раз. Второй щелчок вперед (в пункте меню) по-прежнему будет запускать сообщения обратной связи и данные будут правильно возвращены (видно из Firebug), но UpdatePanel не отображает данные, переданные обратно.

<asp:Menu runat="server" Orientation="Horizontal" RenderingMode="List" 
    EnableTheming="False" ID="MenuBar" MaximumDynamicDisplayLevels="0" 
    StaticDisplayLevels="1" DataSourceID="xdsSiteMap" 
    onmenuitemclick="TabBar_MenuItemClick"> 
    <DataBindings> 
     <asp:MenuItemBinding DataMember="siteMapNode" TextField="title" ValueField="value" /> 
    </DataBindings> 
</asp:Menu> 
<asp:XmlDataSource ID="xdsSiteMap" runat="server" 
    DataFile="SiteMap.xml" XPath="SiteMap/siteMapNode"> 
</asp:XmlDataSource> 

<asp:UpdatePanel runat="server" ID="upp"> 
<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="MenuBar" /> 
</Triggers> 
<ContentTemplate> 
    <asp:XmlDataSource ID="xdsData" runat="server" 
     DataFile="LinkData.xml" XPath="Links[@value='step1']"></asp:XmlDataSource> 
    <asp:Repeater runat="server" ID="repeater" dataSourceID="xdsData"> 
    <ItemTemplate> 
     <a href="<%#XPath("@url") %>"><%#XPath("Desc") %></a> 
    </ItemTemplate> 
    </asp:Repeater> 
</ContentTemplate> 
</asp:UpdatePanel> 

Code-за:

protected void TabBar_MenuItemClick(object sender, MenuEventArgs e) 
    { 
     xdsData.XPath = "Links[@value='" + e.Item.Value + "']"; 
    } 

ответ

0

Это оказывается ошибка JavaScript с функцией наблюдателя при каждой загрузке страницы:

 var prm = Sys.WebForms.PageRequestManager.getInstance(); 
     prm.add_pageLoaded(function (sender, args) { 
      // some exception is generated here 
     }); 
0

аспида: меню, где вы выполняете событие щелчка от не содержится в панели обновления, не уверен, что это проблема непосредственно, но это делает мне интересно, если postback происходит асинхронно вообще на данный момент. Попробуйте включить меню asp: внутри панели обновления и посмотреть, что произойдет.

+0

Вот что '' для. Как я уже сказал, postback определенно происходит, и updatePanel обновляется, но только при первом щелчке. –

+0

Можете ли вы разместить свой page_load код? – javram

+0

ничего нет ... –

Смежные вопросы