我有一个包含在 UpdatePanel 中的 asp.net 按钮,单击它时会执行异步回发并注册一些显示 jquery 对话框的 javascript。
protected void btnAddData(object sender, EventArgs e) {
StringBuilder jqueryDialog = new StringBuilder();
jqueryDialog.Append("$(document).ready(function() {");
jqueryDialog.Append("RefreshData();");
jqueryDialog.Append("$('#divData').dialog({ modal: false, draggable: true, title: 'Historical Data', width: 700 });");
jqueryDialog.Append("});");
ScriptManager sm = ScriptManager.GetCurrent(this);
if (sm != null && sm.IsInAsyncPostBack) {
ScriptManager.RegisterClientScriptBlock(
this, typeof(Page), Guid.NewGuid().ToString(),
jqueryDialog.ToString(), true);
}
}
如您所见,javascript 首先调用了一个名为 RefreshData() 的函数,该函数作为 javascript 存在于我的标记中。
<script type="text/javascript" language="javascript">
if ($) {
$(document).ready(function () {
function RefreshData() {
alert("Data Refreshed!");
}
});
}
</script>
但是,Firefox 给出的错误是RefreshData is not defined。这是否意味着我在异步回发中注册的任何 javascript 都将无法使用我在标记中定义的 javascript 函数?
谢谢您的帮助。