我在UpdatePanel中有一个UpdatePanel,我有"li“和"href”用于导航到另一个页面。在UpdatePanel之后,我有了更新进度,但当单击"li“时它不起作用。我在我的代码中为不同类型的UpdatePanels使用了UpdateProgress,它都可以工作,唯一我不能工作的事情是,如果单击按钮或"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>发布于 2012-03-24 08:46:56
What am I missing?这里的问题是,您使用UpdatePanel内部的<%= %>在网页上直接写入。
当您使用UpdatePanel时,更新需要全部在后台代码上完成,否则会失败,原因是在回发时,他只能运行后台代码,并且只能通过这种方式进行呈现更新。
因此,要使其正常工作,请删除页面的aspx部分上的<%= %>逻辑,并将其更改为您在后台代码上呈现的文字。
例如:将此部分全部替换为
<%
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"));
}https://stackoverflow.com/questions/9845088
复制相似问题