在异步回发上注册javascript
我在UpdatePanel中包装了一个asp.net按钮,单击它会执行异步回发并注册一些显示jquery对话框的javascript在异步回发上注册javascript,javascript,jquery,asp.net,asynchronous-postback,Javascript,Jquery,Asp.net,Asynchronous Postback,我在UpdatePanel中包装了一个asp.net按钮,单击它会执行异步回发并注册一些显示jquery对话框的javascript protected void btnAddData(object sender, EventArgs e) { StringBuilder jqueryDialog = new StringBuilder(); jqueryDialog.Append("$(document).ready(function() {"); jqueryDial
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>
如果(美元){
$(文档).ready(函数(){
函数RefreshData(){
警报(“数据已刷新!”);
}
});
}
但是,Firefox给出了一个错误,表示未定义刷新数据。这是否意味着我在异步回发上注册的任何javascript都将无法使用
我在标记中定义的javascript函数
谢谢您的帮助。不要在document.ready函数中定义
RefreshData
函数,该函数是匿名回调函数。在外部对其进行定义,以便外部可以访问:
<script type="text/javascript">
if (typeof($) != 'undefined') {
function RefreshData() {
alert("Data Refreshed!");
}
}
</script>
typeof($)!='未定义“
?@shankarsangli,很好。我已经更新了我的答案,将其考虑到jQuery的测试中。
StringBuilder jqueryDialog = new StringBuilder();
jqueryDialog.Append("RefreshData();");
jqueryDialog.Append("$('#divData').dialog({ modal: false, draggable: true, title: 'Historical Data', width: 700 });");