我有一個由菜單控件(MenuItemClick)觸發的UpdatePanel。在UpdatePanel中,有一個帶有XML數據源的Repeater。點擊菜單項後,Repeater的XML數據源的XPath將被更新,並且中繼器將顯示更新的數據。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>
代碼隱藏:
protected void TabBar_MenuItemClick(object sender, MenuEventArgs e)
{
xdsData.XPath = "Links[@value='" + e.Item.Value + "']";
}
這是''什麼。正如我所說,回發肯定發生,updatePanel正在更新,但只在第一次點擊。 –
2012-03-20 06:27:25
你能發佈你的page_load代碼嗎? – javram 2012-03-20 06:30:34
什麼都沒有...... – 2012-03-20 06:40:47