Как поместить эту функцию Java script во внешний файл для пользовательского управления?

#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:

Насколько я понимаю, это явно проблема с путем. Возможно, вам помогут следующие действия.

  1. Сначала создайте файл .js. Поместите свой код и сохраните его в нужную папку.
  2. Теперь перетащите файл 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" />