0
我有一個包含在UpdatePanel內部的asp.net按鈕,點擊後它執行異步回發並註冊一些顯示jQuery對話框的JavaScript。在異步回發上註冊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沒有定義錯誤。這是否意味着我在異步回傳中註冊的任何javascript將無法使用我在標記中定義的 javascript函數?
感謝您的幫助。
怎麼樣'typeof運算($ )!='undefined''? – ShankarSangoli 2012-04-03 20:56:30
@ShankarSangoli,好點。我已經更新了我的回答,並將其納入jQuery測試中。 – 2012-04-03 20:57:47
@Darin - 非常感謝!這個伎倆。 – Jagd 2012-04-03 21:53:13