2009-12-09 2 views
1

Это может быть очень простой вопрос, но для жизни меня я не могу понять. Поэтому у меня есть пользовательский элемент управления, который загружается на страницу. Ну, в этом пользовательском элементе управления я хочу включить файл js для некоторых функций, которые относятся только к этому пользовательскому элементу управления. Внутри этого js-файла предположим, что у меня есть функция «MyFunction». В событии onclick div я хочу вызвать эту функцию, и я не могу. Любая помощь будет принята с благодарностью.JS Include File From ASP.Net User Control

Я использую 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

+0

Пока все, что вы упомянули выше, не происходит в async postback ala updatepanels, тогда оно должно работать. Если вы используете панели обновления, у ScriptManager есть несколько статических методов, которые вы можете использовать вместо page.ClientScript. –

+0

Да, не используя ScriptManager. Но я заметил, что, поскольку я регистрирую js, используйте using clientcriptmanager в page_load, и скрипт не включен в начало страницы, он немного ниже. Это не должно меняться, потому что я также делаю jQuery одинаково, и он отлично работает. Итак, я полностью застрял, насколько это можно понять. – Keith

0

Таким образом, в верхней части страницы (в головной метке вашего HTML), выходной тег сценария, который ссылается на ваш JavaScript файл с вашими функциями. Метод Al W выше - это аккуратно. Затем после загрузки DOM назначьте функции элементам управления. Например, с помощью jQuery вы используете:

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

Keith

+0

Можно ли это сделать из контекста пользовательского элемента управления? Если тег