#c# #javascript #asp.net
#c# #javascript #asp.net
Вопрос:
У меня есть пользовательский элемент управления с именем header.aspx. В моем пользовательском управлении, если я это сделаю, это сработает.
<script type="text/javascript">
function greeting(){
Alert("hi");
}
</script>
<asp:button id="button1" OnClientClick="greeting" /> </asp:button>
Я использую этот пользовательский элемент управления на странице с именем default.aspx. Я попытался использовать src=»~scripts/foo.js «. Если я это сделаю, это не сработает. Я думаю, вопрос довольно прост. Как бы я вызвал функцию Java script в пользовательском элементе управления, который хранится во внешнем расположении (не на странице. Находится в папке scripts). Заранее спасибо.
Комментарии:
1. Проблема может быть в пути
src="~scripts/foo.js"
, который вы указываете.
Ответ №1:
Насколько я понимаю, это явно проблема с путем. Возможно, вам помогут следующие действия.
- Сначала создайте файл .js. Поместите свой код и сохраните его в нужную папку.
- Теперь перетащите файл js в раздел head вашего html-кода из окна обозревателя решений. Это даст вам правильный путь к файлу js.
Вышеуказанные шаги — это то, чему я следую, когда создаю внешний js-файл для своих элементов управления.
Также убедитесь, что вы вызываете свою функцию таким образом, который также предлагается другими, иначе ваша функция не получит вызова:
<asp:button id="button1" OnClientClick="greeting();" /> </asp:button>
Комментарии:
1. Спасибо за ответ. Просто для двойной проверки. Эта процедура будет работать и для пользовательского управления, верно?
2. да, это будет. Я тоже использую эти элементы управления моим списком.
3. поддержано. Лучше использовать внешний js-файл.
4. @tranttrum, если этот ответ был полезен, пожалуйста, примите его как ответ, чтобы он мог быть полезен другим в будущем.
5. @HassanNisar но вы увеличиваете http-запрос, не так ли?
Ответ №2:
Просто используйте приведенный ниже код:
<script src="<%: ResolveUrl("~/Scripts/foo.js") %>"></script>
Ответ №3:
Сценарий: test.js
function greeting() {
alert("hi");
return false;
}
пользовательский контроль: <asp:Button ID="button1" OnClientClick="return greeting()" runat="server" Text="click" />
Страница:
<head runat="server">
<title></title>
<script src="test.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:temp ID="temp" runat="server" />
</div>
</form>
</body>
</html>
Теперь это должно сработать.
Комментарии:
1. Спасибо за ответ. Почему мы должны использовать return greeting(), а не просто приветствие?
2. @trant trum, в вашем коде нет необходимости в возврате, поскольку вам нужно только предупреждение, но в случае, если ваша функция javascript возвращает некоторые значения, вам нужно использовать return .
3. Нет необходимости писать return, если вы не возвращаете значение. В моем коде я вернул false из функции, поэтому я использовал return greeting() .
Ответ №4:
<asp:button id="button1" OnClick=" javascript : greeting();" /> </asp:button>
попробуйте использовать его. не удалось, но я думаю, что это должно сработать.
Ответ №5:
Прежде всего, вам нужно создать отдельный файл javascript, а затем добавить его на свою страницу таким образом. добавьте этот тег в тег вашей страницы.
используйте
OnClientClick="greeting()"
вы пропустили «()» в OnClientClick=»приветствие»
Пожалуйста, посмотрите весь HTML-код:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="scripts/foo.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:button id="button1" runat="server" OnClientClick="greeting()" Text="hit" />
</div>
</form>
</body>
</html>
Спасибо.
Комментарии:
1. Я попробовал это. Но я получаю исключение, в котором говорится, что функция javascript не найдена.
2. находится ли файл javascript в функции «script»? если это так, то используйте обновленную строку.
3. @Raja.
Script
в пути нет функции. Это папка.4. также используйте alert вместо Alert .
Ответ №6:
Ссылка на внешний файл javascript:
<script src="yourpath/yourfilename.js"></script>
Управление кнопками
<asp:Button ID="button1" OnClientClick="greeting();" runat="server" Text="click" />