看起来它应该工作。确保您在您的页面上放置了一个<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">×</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
控件的可见性。如果在将页面精简到最低限度后仍然无法正常工作,请发布更多代码,我会再看一下。