【发布时间】:2015-07-23 03:46:22
【问题描述】:
我正在创建以下功能:使用已加载的 excel 文件中的数据在按钮单击时创建表,并将此表保存到 xml 文件。保存后,我想显示带有一些消息的模式窗口(引导程序)。由javascript函数管理的窗口,我从后面的代码中调用了这个函数。
这是我的 HTML 页面:
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="../js/bootstrap.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div id="modalSaved" class="modal hide fade">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<p>
Changes were saved successfully!
</p>
</div>
<div class="modal-footer">
<button type="button" runat="server" id="ok" class="btn btn-default" data-dismiss="modal">OK</button>
</div>
</div>
<asp:ScriptManager ID="ScriptManager" runat="server"></asp:ScriptManager>
<div id="file">
<asp:FileUpload runat="server" ID="OpenFile" accept="application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
</div>
<div id="actions" runat="server">
<asp:Button ID="CreateRepBtn" runat="server" OnClick="CreateRepBtn_Click" />
<asp:Button ID="SaveToXml" runat="server" OnClick="SaveToXml_Click" />
</div>
<script type="text/javascript">
function openModalSaved() {
$('#modalSaved').modal('show');
}
</script>
</form>
</body>
以及调用javascript函数的C#代码:
protected void SaveToXml_Click(object sender, EventArgs e)
{
/* save to xml code */
ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "openModalSaved();", true);
}
问题是模式窗口没有出现。我支持它以某种方式与 FileUpload 元素连接,因为在没有 FileUpload 的另一个页面上,这样的代码可以完美运行。
我也尝试过使用 UpdatePanel(FileUpload 元素在外面),但没有帮助。
有人知道如何解决这个问题吗?欢迎任何建议。
【问题讨论】:
-
为什么不将#modalSaved 的runat 属性设置为服务器,然后直接从后面的代码中控制其可见性
-
尝试 RegisterClientScriptBlock 而不是 RegisterStartupScript。
-
@MairajAhmad 我已经在所有页面元素之前替换了脚本块并尝试了这个:ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Pop", "openModalSaved();", true) .但不幸的是它并没有帮助
标签: javascript c# asp.net twitter-bootstrap file-upload