0

updatepanel在 asp.net 页面上使用内部 jQuery 弹出窗口。在这个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>

我需要使用updatepanel'endrequest函数或注册一些脚本吗?请建议。

4

1 回答 1

0

看起来它应该工作。确保您在您的页面上放置了一个<asp:ScriptManager />控件(如果您使用的是 Telerik,则为 RadScriptManager,如果您使用的是 Microsoft 的 AjaxToolkit,则为 ToolkitScriptManager 等)

编辑: 以下是可以正常使用的代码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;
}

我鼓励你在你的应用程序中创建一个测试页面,只使用这个标记来确认它在你的环境中工作。假设确实如此,那么我将采用您有问题的代码并开始提取部分内容。也许将相同的纯文本放在第二个Placeholder控件中,而不是几个样式化的 div 和Literal从资源文件中提取其文本的一个。注释掉您的数据更新代码,这样您的保存按钮所做的就是切换两个Placeholder控件的可见性。如果在将页面精简到最低限度后仍然无法正常工作,请发布更多代码,我会再看一下。

于 2013-10-06T14:32:07.627 回答