У меня есть 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 + "']";
}
Вот что '' для. Как я уже сказал, postback определенно происходит, и updatePanel обновляется, но только при первом щелчке. –
Можете ли вы разместить свой page_load код? – javram
ничего нет ... –