Пользовательский контроль доступа к Javascript с главной страницы контента. - PullRequest
3 голосов
/ 11 марта 2009

Привет всем, у меня проблема. У меня есть мастер-страница, от которой наследуются все мои страницы контента. На этой главной странице у меня есть тег сценария, указывающий на папку файла Javascript ~/Scripts/validation.js

На своих страницах контента я использую различные пользовательские элементы управления, которые требуют использования многих функций из файла validation.js, однако, если я не помещаю тег <script> и функции Javascript в пределах держателя содержимого на странице содержимого, пользовательские элементы управления не делают увидеть эти функции, и я получаю ошибки, как OnNameValidation не определено.

Конечно, я могу скопировать код Javascript на все страницы, но это более 30 страниц и кошмар обслуживания, если я обнаружу ошибку в одной из функций Javascript.

Таким образом, вопрос (если вы еще не поняли из моей длинной диссертации) заключается в том, как я могу объявить тег script с путем к файлу validation.js, чтобы страницы содержимого, их пользовательские контроли и т. Д. Могли получить доступ к функциям / код.

Ответы [ 4 ]

0 голосов
/ 13 октября 2011

В настоящее время я делаю это на своем сайте, перейдя к исходному коду на главной странице и добавив следующее в заголовок и за пределы ContentPlaceHolder.

<head>
    <asp:ContentPlaceHolder ID="HeadContent" runat="server">
    </asp:ContentPlaceHolder>

    <script src="CP.js" type="text/javascript"></script>
</head>
0 голосов
/ 23 декабря 2009

Я взял этот совет от ScottGu здесь .

Добавьте это к своему пользовательскому элементу управления, который включает Intellisense в пользовательских элементах управления, но всегда оценивает false:

<% if (false) { %>
   <script src="/Scripts/validation.js" type="text/javascript"></script>
<% } %>
0 голосов
/ 31 декабря 2009

Путь, который вы назначаете для своего файла js, вероятно, не совпадает на всех страницах.

script src="../JavaScript/Scriptaculous/scriptaculous.js"

Это должно выглядеть примерно так, если у вас есть отдельная папка для скриптов, мастер-страниц, страниц и элементов управления.

0 голосов
/ 16 апреля 2009

То, что вы пытаетесь сделать, должно работать, поэтому я подозреваю, что путь к вашему файлу javascript неправильный (без просмотра вашего HTML-кода я могу только предположить). Помните, что вы можете ссылаться на файл javascript только так: «~ / Scripts / validation.js», если у вас есть ссылка в теге HEAD runat = "server". Без runat = "server" он не найдет файл. Вы должны сделать что-то вроде "../scripts/validation.js"

В качестве теста я бы попытался вызвать вашу функцию javascript на главной странице, чтобы вы могли исключить неверную ссылку на файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...