Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Связывание данных через DataBinder.Eval


Автор: GRIENDERS 28.5.2007, 15:58
Понимаю, что мои вопросы из мат части, но вот где почитать подробно не знаю. Поэтому сразу прошу хорошую ссылочку по этой теме.
Вот вопросы

1)На странице есть Repeater. Читаю из базы так
Код

// .......................       
cmd.CommandText="select [Заголовок],[Описание],[Фотка] from [ОписанияПриколов] where [ТипПрикола]=" +"'Joke' 
and [ОКом]='ment'";
        con.Open();
        SqlDataReader r = cmd.ExecuteReader(); 
        con.Close();


Для Repeater'a теперь пишу так
Код

<asp:Repeater ID="Repeater1" runat="server" >
        <HeaderTemplate><table></HeaderTemplate>
        
        <ItemTemplate>
       <tr>
       <td><asp:Image runat="server" ID="fotka" ImageUrl=" <!--Что тут надо, чтобы прочитать из переменной r 
типа SqlDataReader запись Фотка?-->" /></td>
       <td><asp:Label  runat="server" ID="Zagolovok" Text=" <!--Что тут надо, чтобы прочитать из переменной r 
типа SqlDataReader запись Заголовок?-->"></asp:Label></td>
       <td> <asp:Label runat="server" ID="Opisanie" Text=" <!--Что тут надо, чтобы прочитать из переменной r 
типа SqlDataReader запись Описание?-->"></asp:Label></td>
       </tr>
        </ItemTemplate>
       
       
        <FooterTemplate></table></FooterTemplate>
       </asp:Repeater>


Вопросы в коде

2) Чем отличается связывание с источником данных в коде страницы .aspx через <%# %> и в коде страницы asp.cs? Что эффективнее?
3) Отличия DataBinder.Eval и просто Eval ? Почему при записи в aspx странице кода <% this%> в любом месте указывает на объект itemtemplate, а не объект страницы Page?

Автор: Mymik 28.5.2007, 20:49
На твой вопрос ты и сам знаешь ответ. надо использовать <%# Eval("Фотка") %> Если там хранится URL... 

Цитата(GRIENDERS @  28.5.2007,  15:58 Найти цитируемый пост)
2) Чем отличается связывание с источником данных в коде страницы .aspx через <%# %> и в коде страницы asp.cs? Что эффективнее?

Удобством. Тебе не нужно искать контролы (если они вложены)

Цитата(GRIENDERS @  28.5.2007,  15:58 Найти цитируемый пост)
3) Отличия DataBinder.Eval и просто Eval ? Почему при записи в aspx странице кода <% this%> в любом месте указывает на объект itemtemplate, а не объект страницы Page? 

Eval использует позднее связывание
Т.е. данные уже привязались, и после этого он начинает биндить. 

Автор: GRIENDERS 30.5.2007, 18:37
А как же по первому вопросу?

Автор: Mymik 30.5.2007, 21:51
Цитата(GRIENDERS @  30.5.2007,  18:37 Найти цитируемый пост)
А как же по первому вопросу? 


Цитата(Mymik @  28.5.2007,  20:49 Найти цитируемый пост)
На твой вопрос ты и сам знаешь ответ. надо использовать <%# Eval("Фотка") %> Если там хранится URL... 


Добавлено через 3 минуты и 34 секунды
GRIENDERS, ну глупи, ты и сам все прекрасно знаешь о связывании (если присмотреться к 2- и 3-ему вопросам) Я не верю, что ты знаешь что такое DataBinder.Eval и не знаешь как связать данные... это просто невозможно.


Цитата(GRIENDERS @  28.5.2007,  15:58 Найти цитируемый пост)
Почему при записи в aspx странице кода <% this%> в любом месте указывает на объект itemtemplate, а не объект страницы Page? 
Вот этот вопрос чего-то проигнорировал... странно... не заметил наверное.
Вобщем ты немного ошибаешься, не в любом месте кода, а в твоем Repeater вот там вот он должен ссылаться на этот объект. В других объектах на другие объекты ссылается.

Автор: SpaceSpace 31.5.2007, 08:56
GRIENDERS
ВОТ и тебе

http://forum.vingrad.ru/forum/topic-151677.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)