2011-01-15 5 views
2

У меня возникли проблемы с внедрением элементов управления javascript на моей странице asp.net. Я хотел бы, чтобы набор переменных получал их значения на основе некоторых кнопок кнопки asp. Затем я манипулирую этими кнопками в зависимости от того, как их нажимают. У меня возникли некоторые проблемы, хотя:Проблема Javascript и ASP.NET

  1. Любые глобальные переменные Я определяю и задать значения возвращаются утратившим
  2. Я не могу запустить событие OnLoad, потому что все мои переменные возвращаются в нуль.
  3. Я не могу использовать теги asp.net visible = "false", потому что по какой-то причине javascript не может показать элемент управления.
  4. javascript style.visibility = "visible" на самом деле не работает, поскольку вы все еще можете видеть, где будет кнопка - это просто не видно.

Так вот мой код. TL, DR - я хотел бы запустить некоторое поведение, чтобы условно показать/скрыть кнопки через js при загрузке, а затем скрыть/показать кнопки при разных нажатиях кнопок. Я знаю, что это проблема с областью, так как глобальные переменные возвращают «null», когда я их тестирую, но я не знаю, как это сделать и проблема с загрузкой. Благодаря!

var btnEdit = document.getElementById("<%= cmdEdit.ClientID %>"); 
var btnSave = document.getElementById("<%= cmdSave.ClientID %>"); 
var btnCanvel = document.getElementById("<%= cmdCancel.ClientID %>"); 
var btnConfirm = document.getElementById("<%= cmdConfirm.ClientID %>"); 


function HideEdit(){ 

    $(btnEdit).hide(); 
    $(btnSave).show(); 
    $(btnCancel).show(); 
    $(btnConfirm).hide(); 

    document.getElementById("<%= pnlWhy.ClientID %>").style.visibility = "visible"; 
    document.getElementById("<%= pnlRequest.ClientID %>").style.visibility = "visible"; 
} 

function testme() { 
alert(btnEdit) 

} 
function loadpage(newwine){ 

    if (newwine==true){ 
     $(btnEdit).hide(); 
     $(btnSave).show(); 
     $(btnCancel).show(); 
     } 
    else{ 
     $(btnEdit).show(); 
    } 
$(btnConfirm).hide(); 
} 

ответ

2

Похоже, вы используете jQuery, хотя вы не указали его в тегах. В любом случае, вероятно, происходит то, что ваш код работает до того, как элементы страницы действительно существуют. В этом случае глобальные ссылки будут нулевыми; на самом деле они начинаются с нуля.

Если вы используете JQuery, просто поместите свой код в «готовом» обработчиком:

$(function() { 
    // all your code here 
}); 
+0

Ничего, я использую jQuery. Извините, что не оставлял это. Таким образом, я мог бы запустить все в готовом обработчике, и это будет срабатывать, когда страница «готова»? Это скалы, спасибо! – user576838

0

Почему вы не найти элемент с помощью JQuery? Это более удобно. Также вы можете установить или удалить класс стиля с помощью методов jQuery .addClass (http://api.jquery.com/addClass/). Если вы Ned после одного щелчка установите видимость true и после другого щелчка установите видимость false, используйте jQuery .toggle jQuery method (http://api.jquery.com/toggle/)