2013-06-05 60 views
1

你可以把jQuery代碼放入.ascx頁面嗎?從ASP.NET用戶控件ascx頁面加載jQuery?

我有一個用戶控件,我在一個ASP.NET項目中使用。當我在default.aspx頁面上選擇某些內容時,會動態創建該控件的多個實例。我想用jQuery來操縱用戶控件的部分內容。但是,jQuery似乎沒有加載。

我在我的母版頁中引用jQuery庫。我從我的Default.aspx測試下面的代碼和它的作品,但我沒有得到任何反應,當我使用相同的代碼從我的ascx頁面中:

<script type="text/javascript" charset="utf-8"> 
    if (typeof ($) != 'function') alert('This component requires jQuery.'); 
    else $(function() { alert('The DOM is ready for jQuery manipulation.'); }); 
</script> 

任何想法?

Thx。

回答

0

如果您在masterpage中引用了jQuery,那麼您可以使用.ascx來訪問它。

你可以把這裏面的$(document).ready(function(){/ * 你的代碼.. * /}); - 在ascx-並檢查?

+0

是的。什麼都沒發生。 –

0

要在用戶控件.ascx中包含並運行JavaScript或JQuery代碼行,不應該在HTML代碼中插入<script>標記。只有在需要的時候才使用它來插入對JQuery文件的引用。 ASP.NET頁面事件(如Load或UpdatePanel用戶控件)不一定會觸發客戶端事件,例如在.aspx頁面上加載完成時。爲了得到這個,你應該使用ScriptManager.RegisterClientScriptBlock。當您成功的樣本,建立了這個代碼在你.ASCX控制的Load事件:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "ActivateJsSample", 
@"<script type = 'text/javascript'> 
if (typeof ($) != 'function') alert('This component requires jQuery.'); 
else $(function() { alert('The DOM is ready for jQuery manipulation.'); }); 
}); 
</script>", false); 

這將同步與火你的用戶控件的Load事件,每一次火起來。

相關問題