Модераторы: gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> <%= %> в вэб-контролах 
V
    Опции темы
Bogdan1024
  Дата 2.7.2008, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 1
Всего: 13



Объяснять долго. Посмотрите, пожалуйста, почему не работает.

Присоединённый файл ( Кол-во скачиваний: 11 )
Присоединённый файл  WebApplication1.rar 7,04 Kb


--------------------
user posted image
PM MAIL   Вверх
Bogdan1024
Дата 5.7.2008, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 1
Всего: 13



Тупо нипанимаю. 
Переделал из 
Код

<asp:Label runat="server" ID="Label1" Text="<%= this.LabelText %>" />

В
Код

<asp:Label runat="server" ID="Label1">
<%= this.LabelText %>
<asp:Label />

И заработало. Тупо нипанимаю почему первый случай не работает. 
Ну ладно, хоть как-то, и то хорошо.
Если кто знает почему первым способом нельзя - пишите!

Это сообщение отредактировал(а) Bogdan1024 - 5.7.2008, 22:51


--------------------
user posted image
PM MAIL   Вверх
wotker
Дата 5.7.2008, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: 1
Всего: 5



У меня так работает:
Код

<asp:Label ID="label2" runat="server" Text="11" ></asp:Label>
<asp:Label runat="server" ID="Label1" Text="<%# label2.Text %>" />


--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
Bogdan1024
Дата 5.7.2008, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 1
Всего: 13



...у тебя работает, но не то smile


--------------------
user posted image
PM MAIL   Вверх
wotker
Дата 5.7.2008, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: 1
Всего: 5



Хм.. я торможу smile 
а в чем разница? Что такое LabelText?
--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
Bogdan1024
Дата 6.7.2008, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 1
Всего: 13



Тебе следовало скачать проект чтобы понять о чём речь. Ну да ладно.
LabelText - свойство WebControl'a, которое задаётся на странице.
<% %> - в этих чудо-скобках можно на странице писать код, который исполнится кажется в событии OnPreRender.
<%= %> - сокращёние. То же, что и Response.Write
<%# %> - датабиндиг smile 



--------------------
user posted image
PM MAIL   Вверх
wotker
Дата 6.7.2008, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: 1
Всего: 5



Ага.. понятно
Цитата

<%= %> - сокращёние. То же, что и Response.Write

В первый раз такое увидел. Думал  '=' случайно закрался.
На мой взгляд использование этой конструкции чревато последствиями. 
Зачем изобретать какие-то хаки, если можно сделать более цивильным способом.
Более того раз мы позволяем вставлять любые выражения, как парсер должен обрабатывать такие конструкции?
Код

<asp:Label ID="Label1" runat="server" Text=<%= Label1.Text %> />

--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
Bogdan1024
Дата 6.7.2008, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 1
Всего: 13



Цитата
Зачем изобретать какие-то хаки, если можно сделать более цивильным способом.

ИМХО это дико удобно. Таким конструкциям быть!


--------------------
user posted image
PM MAIL   Вверх
Idsa
Дата 6.7.2008, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(Bogdan1024 @  6.7.2008,  05:21 Найти цитируемый пост)
ИМХО это дико удобно. Таким конструкциям быть! 

Готов поспорить, что ты не программировал на PHP, чистом ASP или еще каком-нибудь языке, где embedded code - норма жизни. Даже самые заядлые PHP-шники обалдевают от ASP.NET'овского code behind. PHP'никам для некоторого подобия code behind приходится использовать Smarty (вроде так называется). Но это совсем не то...
Да я и сам после PHP'ного "macaronni code" был впечатлен code behind.
Embedded code, а вместе с ним и конструкции <%, <%= существуют в .NET для совместимости с чистым ASP: чтобы сильно не пугать программистов, переходящих на ASP.NET.

Добавлено через 14 минут и 37 секунд
Цитата(Bogdan1024 @  6.7.2008,  02:51 Найти цитируемый пост)
Если кто знает почему первым способом нельзя - пишите!

Конструкцию <%= нельзя использовать для установки свойств. Насколько я помню, она будет воспринята как строка.
Я вижу причину в том, что конструкция <%= выполняется на этапе рендеринга, поэтому было бы легкомысленно разрешать разработчикам использовать ее для установки свойств: на форумах была бы одна из популярнейших тем "почему я установил свойство через <%=, а оно не установилось" smile


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
PashaPash
Дата 6.7.2008, 10:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 7
Всего: 49



Цитата(Idsa @  6.7.2008,  09:49 Найти цитируемый пост)
Embedded code, а вместе с ним и конструкции <%, <%= существуют в .NET для совместимости с чистым ASP: чтобы сильно не пугать программистов, переходящих на ASP.NET.
<%, <% - неотъемлимая часть asp.net, а не просто конструкции для совместимости. <%= очень удобна для привязки скриптов на странице к ClientID контролов, из CB это делать совершенно неудобно.
Из конструкций забыли про <%$ smile


--------------------
PM MAIL WWW   Вверх
wotker
Дата 6.7.2008, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: 1
Всего: 5



Цитата

Конструкцию <%= нельзя использовать для установки свойств.

Цитата

<%= очень удобна для привязки скриптов на странице к ClientID контролов

мм. а здесь нет противоречия?

--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
Idsa
Дата 6.7.2008, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(PashaPash @  6.7.2008,  14:41 Найти цитируемый пост)
<%, <% - неотъемлимая часть asp.net, а не просто конструкции для совместимости. <%= очень удобна для привязки скриптов на странице к ClientID контролов, из CB это делать совершенно неудобно.

Со скриптами, конечно, удобно... но это не более чем исключение, подтверждающее правило:
Цитата

Embedded code blocks are supported in ASP.NET Web pages primarily to preserve backward compatibility with older ASP technology. In general, using embedded code blocks for complex programming logic is not a best practice, because when the code is mixed on the page with markup, it can be difficult to debug and maintain. In addition, because the code is executed only during the page's render phase, you have substantially less flexibility than with code-behind or script-block code in scoping your code to the appropriate stage of page processing.


Добавлено через 27 секунд
Цитата(PashaPash @  6.7.2008,  14:41 Найти цитируемый пост)
Из конструкций забыли про <%$

А мы их в соседней теме рассматривали smile

Добавлено через 3 минуты и 18 секунд
Цитата(wotker @  6.7.2008,  14:47 Найти цитируемый пост)
мм. а здесь нет противоречия?

Нет. Здесь немного не то имеется в виду.
<script language="javascript">
   var control = document.getElementById('<%= this.SomeControl.ClientId %>');
</script>


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Bogdan1024
Дата 6.7.2008, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 1
Всего: 13



Цитата
Готов поспорить, что ты не программировал на PHP, чистом ASP или еще каком-нибудь языке, где embedded code - норма жизни. Даже самые заядлые PHP-шники обалдевают от ASP.NET'овского code behind. PHP'никам для некоторого подобия code behind приходится использовать Smarty (вроде так называется). Но это совсем не то...

Ты проспорил, я программил и на ASP и на PHP  smile 
Цитата
Конструкцию <%= нельзя использовать для установки свойств. Насколько я помню, она будет воспринята как строка.

Можно. Могу выложить пример где такая привязка работает.
Цитата

Я вижу причину в том, что конструкция <%= выполняется на этапе рендеринга, поэтому было бы легкомысленно разрешать разработчикам использовать ее для установки свойств: на форумах была бы одна из популярнейших тем "почему я установил свойство через <%=, а оно не установилось" smile

Ну дык, вот одна тема уже есть smile
Цитата
<%, <% - неотъемлимая часть asp.net, а не просто конструкции для совместимости. <%= очень удобна для привязки скриптов на странице к ClientID контролов, из CB это делать совершенно неудобно.

Вот-вот smile
Цитата
Из конструкций забыли про <%$ 

Аналогично, тоже дико удобно!



--------------------
user posted image
PM MAIL   Вверх
Idsa
Дата 6.7.2008, 11:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(Bogdan1024 @  6.7.2008,  15:18 Найти цитируемый пост)
Можно. Могу выложить пример где такая привязка работает.

Ага, давай.

Цитата(Bogdan1024 @  6.7.2008,  15:18 Найти цитируемый пост)
Ты проспорил, я программил и на ASP и на PHP

Надо было на что-нибудь спорить smile

Цитата(Bogdan1024 @  6.7.2008,  15:18 Найти цитируемый пост)
Аналогично, тоже дико удобно!

Удобно? Ну, конечно, удобно! НО! Embedded code удобен до поры до времени. Как только проект разрастается, в этом макаронном коде становится невозможно разобраться. К тому же еще могут начаться проблемы из-за того, что <%= и <%$ выполняются на этапе рендеринга, и поэтому их нельзя считать в том же Page_Load. Ну не спроста даже PHP'ники уже практически не пишут inline код!


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
PashaPash
Дата 6.7.2008, 17:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 7
Всего: 49



Idsa, ASP.NET codebehind - это нестрогая реализация MVC. Поэтому код, относящийся ко view, лучше писать в aspx, а не в code behind. Иначе макароны не разделяются, а просто переносятся в .aspx.cs.
Цитата(Idsa @  6.7.2008,  11:33 Найти цитируемый пост)
К тому же еще могут начаться проблемы из-за того, что <%= и <%$ выполняются на этапе рендеринга, и поэтому их нельзя считать в том же Page_Load. Ну не спроста даже PHP'ники уже практически не пишут inline код! 
<%$ отрабатывает до Load. И использование ее для работы с ресурсами вполне оправдано - контроллер вообще не должен заниматся локализацией вида. А вот без <% и <%= можно и нужно обойтисьsmile

Это сообщение отредактировал(а) PashaPash - 6.7.2008, 17:23


--------------------
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0545 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.