2013-10-06 52 views
0

我在asp.net頁面的jQuery彈出窗口中使用updatepanel。在updatepanel中,我有兩個佔位符。在一個佔位符上,我有一個帶按鈕的表單。當我點擊保存按鈕時,記錄保存在數據庫中。現在保存記錄後。我想用窗體來隱藏這個佔位符。從asp.net在updatepanel裏面隱藏佔位符

並顯示作爲謝謝留言的其他的佔位符。我該怎麼做 ?

我做這樣的:

RegisterPH.Visible = false; 
ThankYouPH.Visible = true; 
ModalUpdatePanel.Update(); 

我的HTML標記是這樣的:

<asp:UpdatePanel ID="ModalUpdatePanel" runat="server" UpdateMode="Conditional"> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnRegister" EventName="Click" /> 
    </Triggers> 
    <ContentTemplate> 
     <asp:PlaceHolder ID="RegisterPH" runat="server"> 
     </asp:PlaceHolder> 
     <asp:PlaceHolder ID="ThankYouPH" runat="server" Visible="false"> 
      <div class="row"> 
       <div class="RegisterText2"> 
        <asp:Literal ID="ThankYouContentLiteral" runat="server" Text="<%$ Resources:Register, ThankYouContent %>" /> 
       </div> 
      </div> 
    </asp:PlaceHolder> 
    </ContentTemplate> 
</asp:UpdatePanel> 

我需要使用updatepanelendrequest功能或註冊一些腳本?請建議。

+0

難道你不能只是做'RegisterPH.visible = false ThankYouPH.visible = true'嗎? –

+0

@YuriyGalanter我這樣做,因爲我在上面的代碼中顯示,但它什麼也沒做 – DotnetSparrow

+0

對不起,最初沒有看到它。這應該起作用了,很奇怪。您不必調用'ModalUpdatePanel.Update()'btw –

回答

0

這看起來應該起作用。確保你把你的頁面上<asp:ScriptManager />控制(或RadScriptManager如果您正在使用Telerik的,ToolkitScriptManager如果你正在使用微軟的AjaxToolkit等)

編輯: 以下是代碼工作正常使用UpdatePanel和引導模態對話框你所提到的:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="bootstrap.aspx.cs" Inherits="TestWeb.bootstrap" %> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen"> 
    <link rel="stylesheet" href="css/bootstrap-theme.min.css"> 
    <script src="Scripts/jquery-1.8.2.js"></script> 
    <script src="js/bootstrap.min.js"></script> 
</head> 
<body> 
<form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
    <a data-toggle="modal" href="#myModal" class="btn btn-primary btn-lg">Launch demo modal</a> 
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
      <h4 class="modal-title">Modal title</h4> 
     </div> 
     <div class="modal-body"> 
      <asp:UpdatePanel ID="upd" runat="server" UpdateMode="Conditional"> 
       <ContentTemplate> 
       <asp:PlaceHolder id="p1" runat="server"> 
        <asp:Literal id="lit1" runat="server" Text="Placeholder 1" /> 
       </asp:PlaceHolder> 
       <asp:PlaceHolder id="p2" runat="server" visible="false"> 
        <asp:Literal id="lit2" runat="server" Text="Placeholder 2" /> 
       </asp:PlaceHolder> 
       </ContentTemplate> 
       <Triggers> 
        <asp:AsyncPostBackTrigger ControlID="btn" EventName="Click" /> 
       </Triggers> 
      </asp:UpdatePanel> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
      <asp:Button ID="btn" runat="server" CssClass="btn btn-primary" Text="Save" OnClick="btn_Click" /> 
     </div> 
     </div><!-- /.modal-content --> 
    </div><!-- /.modal-dialog --> 
    </div><!-- /.modal -->  
</form> 
</body> 
</html> 

而在後臺代碼:

protected void btn_Click(object sender, EventArgs e) 
{ 
    this.p1.Visible = false; 
    this.p2.Visible = true; 
} 

我會encoura通過此標記,您可以在應用中創建測試頁,以確認它可以在您的環境中正常工作。假設它,那麼我會把你有問題的代碼,並開始拉出件。也許在第二個Placeholder控件中使用相同的純文本,而不是幾個樣式的div和一個Literal,它們從資源文件中提取文本。註釋掉您的數據更新代碼,以便您的所有保存按鈕正在切換兩個Placeholder控件的可見性。如果在將頁面剝離到最低限度後仍然無法使用,請發佈更多代碼,然後再看一看。

+0

我正在使用引導模式彈出式窗口,並且上面的代碼在數據保存後沒有更新內容。我也沒有找到谷歌的任何鏈接。請提出任何解決方案。 – DotnetSparrow

+0

@DotnetSparrow我已經更新了我的答案,希望這有助於! –