2009-12-09 44 views
1

這可能是一個非常基本的問題,但對於我的生活我無法弄清楚。所以我有一個用戶控件在頁面上加載。那麼,在這個用戶控件中,我想要爲某些僅針對該用戶控件的函數包含一個js文件。在這個js文件裏面,假設我有一個名爲'MyFunction'的函數。在div的onclick事件中,我想調用該函數,但我無法。任何幫助將不勝感激。JS從ASP.Net用戶控件包含文件

我使用的頁面對象的ClientScriptManager,我理應成功,包括在頁面上的文件中使用以下電話:

page.ClientScript.RegisterClientScriptInclude(scriptTitle, 
    page.ResolveUrl(scriptUrl)) 

現在,在這之後,我想知道,有沒有我需要做什麼才能調用包含文件中的函數?就像在我的div:

<div class="someClass" onclick="MyFunction();">Click Me</div> 

回答

1

我使用的ScriptManager /的ScriptManagerProxy

<asp:ScriptManager runat="server"> 
    <Scripts> 
    <asp:ScriptReference Path="~/js/myscript.js" /> 
    </Scripts> 
</asp:ScriptManager> 
+0

好吧,我需要更清楚一點。因此,我使用的是頁面對象的ClientScriptManager,並且我認爲使用以下調用成功地將該文件包含在頁面中: page.ClientScript.RegisterClientScriptInclude(scriptTitle,page.ResolveUrl(scriptUrl)) 現在,在這個,我想知道,有什麼特別的我需要做的是能夠調用包含文件中的函數嗎?像在我的div:

Click Me
Keith 2009-12-09 04:43:44

+0

只要你上面提到的一切都沒有發生在異步回發ala updatepanels那麼它應該工作。如果您正在使用更新面板,則ScriptManager具有一些靜態方法,您可以使用它們來代替Page.ClientScript。 – 2009-12-09 04:48:46

+0

是不是使用ScriptManager。但是,我注意到,由於我註冊的js包括在page_load中使用clientscriptmanager,並且該腳本未包含在頁面的頭部,所以稍微深入一點。這不應該有所作爲,因爲我也以同樣的方式做jQuery,並且工作正常。所以,就我所知,我完全陷入了困境。 – Keith 2009-12-09 04:57:03

0

因此,在你的頁面的頂部(在你的HTML的head標籤),輸出腳本標記引用您的JavaScript文件與您的功能。上面的Al W的方法很整潔。然後,您可以在DOM加載後將函數分配給控件。例如,你用的jQuery:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#elementID').click(function(){ 
      // do stuff in here 
     }); 
    }); 
</script> 
+0

Keith 2009-12-09 04:46:25

+0

這可以在用戶控件的上下文中完成嗎?如果