2013-04-01 16 views
0

我有一個GridView,帶有一個LinkFutton的TemplateField。當單擊此按鈕時,它將另一個隱藏的TemplateField中的一些XML轉換爲字符串,並將其分配給隱藏的div中的標籤,以便在模式對話框中使用。目前,對話框會按照預期打開正確的信息,然後關閉,我可以在網格中選擇另一條記錄,以查看沒有問題。這是它出錯的地方,我一直無法找到解決方案。如果我在導致回發的頁面上執行其他操作,則將在新的頁面加載中打開最後打開的對話框。jQuery的對話框在回發中重新出現

這裏是我的相關加價:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#txtBeginDate").datepicker(); 
    $("#txtEndDate").datepicker(); 

    $("#response").dialog({ 
     autoOpen: false, 
     modal: true, 
     height: "auto", 
     width: "auto", 
     title: "Equifax Response", 
     close: function(ev, ui) { 
      $(this).dialog('destroy').remove(); 
     } 
    }); 

    $("[id*=lnkEquifaxResponse]").on("click", function EquifaxResopnse() { 
     $("#lblDialog").empty(); 
    }); 

    if ($("#lblDialog").text() != "") { 
     $("#response").dialog("open"); 
    } 
}); 
    </script> 

    <div id="response" visible="false"> 
     <asp:Label ID="lblDialog" runat="server" ></asp:Label> 
    </div> 

    <div id="Gridview"> 
     <asp:GridView ID="grClientTransactions" runat="server" AllowPaging="True" 
      PageSize="25" AutoGenerateColumns="False" DataKeyNames="ResponseXML" 
      EmptyDataText="Record not found." EmptyDataRowStyle-BackColor="#CCCCCC" EmptyDataRowStyle-Font-Bold="true" 
      CssClass="mGrid" PagerStyle-CssClass="pgr" 
      AlternatingRowStyle-CssClass="alt" 
      OnPageIndexChanging="grClientTransactions_PageIndexChanging" 
      onrowcommand="grClientTransactions_RowCommand"> 

      <Columns> 
       <asp:TemplateField ShowHeader="false"> 
        <ItemTemplate> 
         <asp:LinkButton ID="lnkEquifaxResponse" runat="server" CommandName="EquifaxResponse" Text="View" CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>'></asp:LinkButton> 
        </ItemTemplate> 
       </asp:TemplateField> 

       <asp:TemplateField Visible="false" HeaderText="Equifax Response"> 
        <ItemTemplate> 
         <asp:Label ID="lblEquifaxResponse" runat="server" Text='<%# Bind("ResponseXML")%>' ></asp:Label></div>        
        </ItemTemplate> 
       </asp:TemplateField> 

      </Columns> 
      <PagerStyle CssClass="pgr" /> 
      <AlternatingRowStyle CssClass="alt" /> 
     </asp:GridView> 
    </div> 

我是新來的編程所以任何幫助將不勝感激。

回答

1

更新你的代碼是這樣的:

<div id="response" visible="false"> 
    <asp:Label ID="lblDialog" runat="server" EnableViewState="False"></asp:Label> 
</div> 

據我瞭解,當你點擊一個鏈接,lblDialog充滿了對服務器的一些數據,因爲視圖狀態的被啓用時,數據在每個恢復回發。如下所示,if返回true,並出現彈出窗口。

if ($("#lblDialog").text() != "") { 
    $("#response").dialog("open"); 
} 

如果將增加的EnableViewState =「假」,lblDialog的內部文本將失去第二回傳和拉布勒將是空的頁面加載後(如果電網不是一個鏈接被點擊)。

,您可以得到更多的信息關於視圖狀態以及它是如何工作here

+0

謝謝!它做到了。現在我已經在這裏打了2天。 –