Member 14476420 Ответов: 1

Код за вызовом функции jquery не работает


Я пытаюсь вызвать функцию jquery изнутри a vb.net функция и она не работает, хотя я не получаю никаких ошибок. Я не знаю, что я делаю неправильно, так как это моя первая попытка сделать это.

Что я уже пробовал:

С фоновым кодом:

Public Sub HideInsertNewRowButton()
ClientScript.RegisterClientScriptBlock(Me.GetType(), "Script", "DisableNewRow();", True)
Конец Подводной Лодки

javascript со страницы ASPX

<script>
 function DisableNewRow() {
      $("#add").hide();
 }


элемент, который я хочу скрыть от страницы ASPX:

<div class="collapse navbar-inverse navbar-collapse" collapse="navCollapsed">
       <ul class="nav navbar-nav">
         <li id="add" ng-hide="HideAppend">
         <a title="Add A New Row" href="#" ng-click="newRow($event)" ng-class="{'disabled' : ShowLoading}"></a>
         </li>

F-ES Sitecore

идентификаторы должны быть уникальными, поэтому необходимо проверить, что у вас нет более одного элемента с идентификатором "add". Если это не проблема, используйте некоторые методы отладки, чтобы увидеть, что происходит. Вызывается ли ваша функция HideInsertNewRowButton? Если вы просматриваете источник страницы, видите ли вы свой скрипт "DisableNewRow();" на странице? Будет ли вызван DisableNewRow? Возвращает ли что-нибудь "$("#add")"? (проверьте $("#add").длина равна > 0).

Vincent Maverick Durano

Почему вы вызываете функцию JavaScript на сервере в первую очередь? Есть какая-то конкретная причина для этого? Почему бы вместо этого не вызвать функцию JavaScript непосредственно на клиенте?

1 Ответов

Рейтинг:
10

dnxit

Вы можете дать им попробовать

зарегистрировать клиента блок скрипта вводить после того, как состояние представления

зарегистрировать запуск скрипта inject перед окончанием тега

1

ScriptManager.RegisterClientScriptBlock(Page, GetType(String), "myScriptName" + key, $"yourJsFunctionName({jsObject})", True)

2
ClientScript.RegisterStartupScript(GetType(),"hwa","alert('Hello World');",true);

3

ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "Func()", true);

4 Еще один трюк, который вы можете попробовать

<body> 
<head runat="server"> 
  <script type="text/javascript"> 
    function showAlertBox() { 
      alert("Invoked from codebehind."); 
    } 
  </script> 
</head>
  <form id="form1" runat="server"> 
  <div> 
    <asp:Label ID="lable1" runat="server" Text=""></asp:Label> 
    <asp:Button ID="btnShow" runat="server" Text="Invoke Dialogue" /> 
  </div> 
  </form> 
</body>


Код, лежащий в основе запуска функции JavaScript, находится здесь.

lable1.Text = "<script type='text/javascript'>showDialogue();</script>";


Еще одна вещь, попробуйте поставить alet('Test'); в вашей функции js он может вызывать функцию, но не может найти ваш селектор.