Как мне вызвать код JQuery из кода позади?

0

Прямо сейчас я скрываю элементы div с этим скриптом

$(document).ready(function () { 

            $('#<%=phaseOne.ClientID%>').hide();
            $('#<%=phaseTwo.ClientID%>').hide();
            $('#<%=phaseThree.ClientID%>').hide();
});

И я хотел, чтобы он показывался с помощью $('#<%=phaseOne.ClientID%>').show(); код для примера при запуске кнопки, которая базируется на логике и состоянии из базы данных

  • 0
    Вы можете отправить ajax-вызов, получив ответ, покажите нужные элементы.
  • 0
    Я не могу, у меня проблемы с ajax (Ajax Control Toolkit), и, таким образом, это был единственный альтернативный способ, о котором я мог думать. Я получил сообщение об ошибке, если попытался: «RegisterDataItem может быть вызван только во время асинхронной обратной передачи».
Показать ещё 2 комментария
Теги:

3 ответа

3
Лучший ответ

вы можете вызвать javascript fucntion, как показано ниже

в коде С# вы можете вызвать следующий код при завершении условия

ScriptManager.RegisterStartupScript(this, Page.GetType(), "key", "Display()", true);

и на странице.aspx вы можете указать свой div и функцию ниже

<script type="text/javascript">
 function Display() {            
            var e = document.getElementById('<%=phaseOne.ClientID%>');         
            if (e.style.display == 'block')
                e.style.display = 'none';
            else
                e.style.display = 'block';
            return false;
        }
 </script>

<div id="phaseOne" style="display: none;position:absolute;  
    top:300px;
    right:250px;  "</div>
  • 0
    Это работает в пути. Это также испортило CSS этого DIV
  • 0
    @ user3195396 css ты должен позаботиться, попробовав себя
Показать ещё 2 комментария
1

Попробуйте следующее:

<script type="text/javascript">
$(document).ready(function () { 
   HideAll();
}
 function HideAll() 
{   
  $('#<%=phaseOne.ClientID%>').hide();
  $('#<%=phaseTwo.ClientID%>').hide();
  $('#<%=phaseThree.ClientID%>').hide();
}

function ShowPhase1()
{
  $('#<%=phaseOne.ClientID%>').show();
}

</script> 
  • Используйте GetType() вместо typeof(Page), чтобы привязать скрипт к вашему фактическому классу страницы вместо базового класса

  • Передайте ключевую константу вместо параметра Page.UniqueID, что не так важно, поскольку оно должно использоваться именованными элементами управления,

  • Завершите свой оператор Javascript semicolon с semicolon

В поле "Код за Button Click:

if(somecondition==true)
{
  ScriptManager.RegisterStartupScript(this, GetType(), "key", "ShowPhase1();", true);
}

Добавьте как можно больше функций для show/hide и вызова из кода.

  • 0
    что значит key ? Должен ли я использовать один и тот же «ключ» для всех Scriptmanager?
  • 0
    используйте функцию, так как она просто меняет имя функции с «ShowPhase1 ()» на имя вашей функции (), которое установлено ..! пожалуйста, проверьте редактирование!
0

Измените свой код на следующее:

$(document).ready(function() { <% if (someservervalue == true) { %> $('#<%=phaseOne.ClientID%>').show(); <% } else { %> $('#<%=phaseOne.ClientID%>').hide(); <% } %> $('#<%=phaseTwo.ClientID%>').hide(); $('#<%=phaseThree.ClientID%>').hide(); });

Другим способом было бы использовать Page.RegisterClientScriptBlock. Дополнительная информация: http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerclientscriptblock(v=vs.110).aspx

Ещё вопросы

Сообщество Overcoder
Наверх
Меню