Здравствуйте, Nuttzipper, Вы писали:
N>Доброе время суток! Не могу понять в чем дело!
N>В разметке страницы в VS2005 написал
N>N><div visible=false>
N><v8:v8textbox id="Дата" width="100%" runat="server" ItemDataSource="ItemDataSource" FieldName="Дата" SelectButton="True"></v8:v8textbox>
N></div>
N>
N>Поидее <div visible=false> не должен отрабатываться на сервере, а браузер пользователя должен воспринимать свойство и скрывать содержимое. Однако браузер все показывает. В коде страницы в браузере наблюдается следующая реализация asp.netом этого кода
Ну он и не должен отрабатываться браузером
N>N><div visible="false">
N><table cellpadding="0" cellspacing="0" width="100%" id="Дата" style="display:inline;table-layout:fixed;">
N> <tr valign="middle">
N> <td width="100%"><input valueType="dateTime" type="text" value="24.07.2008 0:00:00" style="width:100%;" /></td>
N> </tr>
N></table></div>
N>
N>Посему я думаю что дело в том что я не понимаю как работает свойство visible — почему оно не скрывает все что внутри тега div?
Это точно!
Поскольку DIV не имеет аттрибута runat="server" то ASP.NET рендерит этот элемент с навязанным ему пользовательским аттрибутом visible, а браузер и не знал никогда что у HTML элементов есть аттрибут visible — вот он его и игнорирует.
Используй аттрибут style или class:
style="visibility:hidden" — скрывает элемент, но не убирает из видимой структуры элементов;
style="display:none" — скрывает элемент и убирает из видимой структуры элементов.