我在UpdatePanel中有一个UpdatePanel我有“li”和“href”用于导航到另一个页面。在UpdatePanel之后,我有updateprogress,但是当点击“li”时它不起作用。我在整个代码中使用UpdateProgress来处理不同类型的UpdatePanel,并且这一切都是我无法工作的唯一方法就是单击按钮或“li”“href”它不会加载图像。这是我的代码,我错过了什么?
<asp:UpdatePanel ID="upnavcontainer" runat="server">
<ContentTemplate>
<div id="navcontainer"
style="border-style: outset; border-width: thin; background-color: #663300; height: 30px; ">
<ul id="navlist" runat="server">
<li runat ="server" id="Home" >
<a href='<%= ResolveUrl("~/Default.aspx") %>' title="Home"><span>Home</span></a></li>
<%
if (_ApplicationAccess("Diabetes")) {
%>
<li runat ="server" id="Diabetes">
<a id="current" href='<%= ResolveUrl("~/Home/Home.aspx") %>' title="Diabetes"><span>Diabetes</span></a></li>
<%
}
%>
<%
if (_ApplicationAccess("Dashboard")) {
%>
<li runat ="server" id="Dashboard">
<a href='<%= ResolveUrl("~/Dashboard/Default.aspx") %>' title="Dashboard"><span>Dashboard</span></a></li>
<%
}
%>
</ul>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:updateprogress associatedupdatepanelid="upnavcontainer" id="upProgessNav" runat="server">
<progresstemplate>
<div id="progressBackgroundFilter"></div>
<div id="processMessage">
<img alt="Loading" src="App_Themes/Sugar2006/images/ajax-loader.gif" />
</div>
</progresstemplate>
</asp:updateprogress>
答案 0 :(得分:1)
What am I missing?
此处的问题是您使用UpdatePanel内的<%= %>
在网页上使用直接写入。
当您使用UpdatePanel时,需要在后面的代码上完成更新,否则失败,原因是因为在回发时他只能运行后面的代码并且只能通过这种方式进行渲染更新。
为了使其工作,删除页面的aspx部分上的<%= %>
逻辑,并使用您在后面的代码上呈现的文字来更改它们。
EG。 用
替换所有这部分 <%
if (_ApplicationAccess("Diabetes")) {
%>
<li runat ="server" id="Diabetes">
<a id="current" href='<%= ResolveUrl("~/Home/Home.aspx") %>'
title="Diabetes"><span>Diabetes</span></a></li>
<%
}
%>
与
<asp:literal run="server" id="txtDiabetes" />
以及后面的代码。
if (_ApplicationAccess("Diabetes")) {
// render here the output
txtDiabetes.Text = string.format("<li id=\"Diavetes\" ..... >", ResolveUrl("~/Home/Home.aspx"));
}