Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)

Бодибилдинг
Программы тренировок для занятий штангой, гантелями; описание тренажеров

Я записываю курсы!
  Курс валют

НБУ курс евро






Использование Repeater в ASP.NET c# (вывод статьи и комментариев в HeaderTemplate и ItemTemplate)



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

Здесь я уже не буду описывать бихайн-код и класс ObjectDataSource. Сейчас загвоздка стои имеено в шаблоне самого Repeater.

Итак.
Вспомним, что изначально репитер создан для вывода на странице многократно повторяющихся данных. Точнее, разных данных, но в повторяющемся режиме. Что то типа табличного представления.
Но если сейчас задача стоит в выводе текста одной единственной статьи, а не анонсов многих статей, как в прошлой статье, тогда почему наш выбор остановился именно на повторителе (Repeater)?!

Дело в том, что повторения предполагают комментарии к данной статье. Ведь комментариев может быть несколько и очень много.

Вот теперь задача сводится к биндингу данных для вывода комментариев.

Казалось бы, загоним статью в Header-блок, а комментарии в Item-блок:

<asp:Repeater ID="Repeater1" runat="server" 
        onitemdatabound="ItemDataBound" >
       <HeaderTemplate>
       
        <table>
            <tr>
              <td class="ArticlesBox"><br />
                <h2 id="h2u2"><%# Eval("Title")%></h2><br />
                <div id="Prebody2"><%# Eval("Prebody")%></div><br />
                <div id="articleBody"><%# Eval("Body")%></div><br /><br />
              </td>
            </tr>        
        </table>
      
    	</HeaderTemplate>
    


<ItemTemplate>       
    <br />
    <table width="100%">
    <tr>
    <td>
    <pre class="comment">
        <span style="color:#707070; text-transform:uppercase;">
        <%# Eval("Nic")%>    <%# Eval("commentDate")%></span>
        <p><%# Eval("CommentBody")%></p>
        
    </pre>
    </td>
    </tr>
    </table>
    </ItemTemplate>
    


	<FooterTemplate>
    
	</FooterTemplate>
     


    </asp:Repeater>

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

Решается проблема просто.

Текстовку статьи вытягивать теперь будет не контрол привязки ObjectDataSource (или любой другой), а бихайн-код. И вытягивать придется в переменные класса – поля Title, Prebody, Body. Просто вытащите из БД требуемую статью и в эти стринговые переменные занесите соответствующую информацию. А в хедере репитера вместо функции Eval используем «Response.Write», или эквивалент «=»:

<asp:Repeater ID="Repeater1" runat="server" 
        onitemdatabound="ItemDataBound" >
       <HeaderTemplate>
       
        <table>
            <tr>
              <td class="ArticlesBox"><br />
                <h2 id="h2u2"><% =Title%></h2><br />
                <div id="Prebody2"><% =Prebody%></div><br />
                <div id="articleBody"><% =Body%></div><br /><br />
              </td>
            </tr>        
        </table>
      
    	</HeaderTemplate>
    


<ItemTemplate>       
    <br />
    <table width="100%">
    <tr>
    <td>
    <pre class="comment">
        <span style="color:#707070; text-transform:uppercase;">
        <%# Eval("Nic")%>    <%# Eval("commentDate")%></span>
        <p><%# Eval("CommentBody")%></p>
        
    </pre>
    </td>
    </tr>
    </table>
    </ItemTemplate>
    


	<FooterTemplate>
    
	</FooterTemplate>
     


    </asp:Repeater>

Таким вот нехитрым способом мы обошли невозможность прямой привязки в хедере и футере репитера.

Теперь вы знаете на один способ больше вывода повторяющихся данных вместе с единственным блоком дополнительной информации. Теперь, я надеюсь, вы более гибко будете применять Repeater.

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

Применяйте и наслаждайтесь :)



Больше информации читайте по теме:

ASP.NET: Доступ к серверным элементам управления на клиенте. Управление видимостью серверных контролов на стороне клиента с помощью JavaScript
ASP.NET - Программное изменение активной даты в контроле Calendar на с#
ASP.NET - использование Repeater с ObjectDataSource для вывода статей
c# - сортировка в GridView по нескольким столбцам
Вставка в GridView промежуточных (дополнительных) строк средствами c# (событие RowDataBound)
Получение объекта SessionState в обработчике запросов .ashx
Cross-Page Posting: Межстраничная отправка данных средствами ASP.NET (передача данных между страницами .aspx)
Динамическая генерация (автоматическое формирование) пути изображения с помощью хендлера .ashx
Скрытие пути изображения (защита изображения) ASP.NET
Установка капчи на сайте ASP.NET
Вставка (внедрение, подключение) кода JavaScript в страницу (разметку) ASP.NET
Отображение данных в GridView используя SqlDataSource
Типы проектов ASP.NET – Web Site и WebApplication
Семь важных фактов об ASP.NET



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        


        Прохожий    20.08.2010 16:45:02
        

Круто, круто! Даже и не знал, что можно вот так интересно использовать репитер. Супер! Хочется конечно еще о контролах вывода данных почитать новые статьи.


        Zanussy    07.11.2010 23:22:12
        

Неплохая статья, даже очень. С кодом сразу не разберешь, но покумекав изъял пользу спасибо


        Занусси    13.11.2010 13:26:00
        

Супер! Респектище тебе автор (предполагаю, что это ты Саша Гудок)! Пару дней помучав репитер я реально вьехал в этот чудесный контрол. Теперь репитер мой любимый :)


        Молкин    07.12.2010 2:34:08
        

Кул, реально хорошая статья и пример отличный. Тоже взял себе на заметку. Спасибо


        Ежов А    11.02.2011 15:18:10
        

и мой спасибо за информация. Действительно очень интересный и нестандартный подход!




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Черный список покупателей
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок