2010-04-21 2 views
1

Я работаю над старым веб-приложением в Visual Studio .Net 2003 (yeeich), и у меня возникла проблема с флажком, который не будет устанавливать видимость Правда.Флажок ASP.Net не разрешает установку видимого значения

Он объявлен как таковой:

Protected WithEvents chkTraining As System.Web.UI.WebControls.CheckBox 

и

<asp:CheckBox id="chkTraining" runat="server" Visible="False"></asp:CheckBox> 

Когда я отладки через линию, которая имеет:

chkTraining.Visible = True 

он идет мимо него хорошо, но, как я проверьте это значение на самой следующей строке, chkTraining.Visible = False. Что может быть здесь? Там нет событий, увольняющихся или что-то еще происходящее ... это действительно бросает меня за цикл. Спасибо за вашу помощь.

ответ

5

Может показаться, что видимость его контейнера установлена ​​в значение false.

+0

Человек я чувствую себя идиотом, я тройной проверил это, прежде чем отправлять и оказалось, что я смотрел на исходный код неправильно ... Помогает, если вы посмотрите на правильный файл первым. Благодарю. –

0

Зачем его объявлять? если вы ставите его в .aspx странице

<asp:CheckBox id="chkTraining" runat="server" Visible="False"></asp:CheckBox>

доступ к нему, используя идентификатор в коде позади ...

+0

Это Visual Studio 2003, я уверен, что вы должны сделать это именно так. Более поздние версии делают это автоматически, но если вы вводите теги и не перетаскиваете элемент управления в форму, он не будет создавать декларацию для вас. –

+0

Справедливо, мне не хватает знаний vs2003, все, что я использовал, - 2005 и 2008 для asp.net (в C#). Мне никогда не нужно объявлять что-либо, что я помещал на страницу .aspx (и не видел никаких явных объявлений, сделанных при перетаскивании элементов управления на страницу .aspx в коде). Однако в коде позади я могу автоматически получать доступ к элементам управления, используя идентификатор. Извините, я не мог помочь, удачи! – Mausimo

0

Вы видите вы упомянули Runat = «сервер».

Поэтому, когда ваша страница загружается в браузере (клиент), идентификатор «chkTraining» изменяется на что-то еще ... это базовое действие asp.net, которое изменяет идентификаторы серверных элементов.

Также проверьте свойство ClientIdMode в разделе свойств. Если он статичен или наследуется, вы получите его, как вы упомянули в коде.

Но если вы использовали любое другое значение, как AutoID, предсказуемые затем сделать так,

Это

<%=chkTraining.ClientID%> 

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

var chk = document.getElementById('<%=chkTraining.ClientID%>'); 

if (chk.checked == true) { 
     alert("checked");     
    } 
    else { 
     alert("unchecked"); 
    } 
Смежные вопросы