UpdateProgress не отображается при нажатии кнопки - PullRequest
1 голос
/ 23 марта 2012

У меня есть UpdatePanel внутри UpdatePanel У меня есть "li" и "href" для перехода на другую страницу.После UpdatePanel у меня есть updateprogress, но он не работает, когда нажимается «li».Я использую UpdateProgress по всему коду для разных типов UpdatePanels, и все это работает, единственное, что я не могу заставить работать, это то, что при нажатии кнопки или «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>

1 Ответ

1 голос
/ 24 марта 2012
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"));
}
...