вы правы, но надо заметить, что этот баг, к счастью, не распространяется на материалы статьи, а присутствует только в конкретно моем решении, которое, можно реализовать лучше, при случае я и сам постараюсь этот баг исправить
Интересная статья получилась,
хотел бы почитать подобную но с описанием того как вы работаете с ajax при использовании стандартных элементов управления.
это тема большая, я даже не знаю как к ней подступиться, на такие темы книги пишут, есть правда один ответ который умещается водно слово «UpdatePanel», но чувствую вы не об этом спрашивали, в последнее время часть ajax-функционала я стараюсь перекладывать на плечи jQuery
у меня его нет, если вы будете так добры и вышлите на мой адрес найденные при работе в этом браузере ошибки я бы с радостью постарался что-нибудь исправить
Данный элемент управления дает большую гибкость в результирующем HTML коде, чет тот же GridView, поэтому будет работать настолько хорошо, насколько напишете.
А с какими именно? Я с ними достаточно много работал, может буду чем-то полезен.
Больше конечно пока использую GridView. Для меня ListView ещё в стандартную схему работы не вошел :) Но в нескольких местах его уже использовал.
В конечном html GridView и ListView выодиться как table или много span'ов вложенные в один span. Когда делал новости, в каждом элементе присутствовало изображение 170x140, вариант с таблицей отпал, так как пока контет таблицы не загрузиться? браузер не отобразит таблицу, что не очень скажем правильно. Отображение span'ами, верстать не удобно. Идеальным вариантом было бы отображение div'ами вложенными в div. GridView или ListView с такой задачей не справятся. И на помощь приходит менее «навёрнутый» элемент Repeater в связке с DataPager.
Да, каюсь, ошибся.
ListView имеет 5 видов отображения:
1)Grid (обычная таблица).
2)Tiled (таблица с вложенными span)
3)Bulleted List (ul -> li)
4)Flow (в div вставлены span'ы и br)
5)Single Row (таблица с одной строкой)
Для описанной выше задачи болие-менее может подойти Flow. Но дивов я не получу, пока не изменю ItemTemplate и LayoutTemplate.(из кода это делать не удобно)
И, у меня возник такой вопрос, пок рассматривал генерируемый html, как можно задать формат ID. Просто не очень красивые получаться ListView1_ctrl0_ProductIDLabel
Мне это нужно для работы в javascript'е. А пример был взят первый попавшийся.
Сотрудник, показал интересный способ, передачи сгенерированного ID в скрипт.
<%= ASPControl.ClientID %>
Из кода это делать очень удобно
id переделать не получится, следует называть вложенные элементы как можно более короткими именами, например вместо DataPager1 — dp
ну как сами по себе GridView и ListView тяжелые элементы. а репитер как бы более примитивный (отображение приходиться формировать ручками)
в кук буках вроде так и говориться когда вам нужно отображать быстро и просто используйте гридвью, а если чтото нестандартное то репитер.
А какого года Ваши кукбуки?
И почему гридвью и листвью на одной полочке по весу?
Используйте в шаблонах односторонее связывание (Eval вместо Bind), и будет Вам листвью не тяжелее репитера.
Ознакомился.
Взгляд у автора на аватарке больно стрёмный, но написано толково :)
Думаю, корень спора в этой ветке и ниже в том, что Вам больше нравится листвью расценивать как гридвью с более гибким оформлением, а мне — как репитер с более обширным функционалом.
Вы как считаете: лифтбэк — это седан с механизмом багажника от хэтчбэка? Или это хэтчбэк с формой багажника от седана?: )
AutoGenerateColumns
Оно, конечно, не комильфо, но иногда нужно в четверть пинка поднять интерфейс для таблицы, а на пол-пинка времени нет.
Конечно, есть Astoria — ей только базу скормить, она уже нагенерит будь здоров.
Несколько сменились приоритеты — есть мощные Data Services, которым и программист не нужен, а есть гибкий и мощный ListView — но ему, будьте добры, опишите как и что.
Так что все-таки не всю гридовью область ListView покрывает.
пишите уж полностью, а не вырывайте из контекста: «
The ListView is an extremely flexible data-bound control that renders its content based on the templates you define. Unlike the Repeater, the ListView adds higher level features such as selection and editing, which work in the same way as those in the GridView. But unlike the GridView, the ListView does’t support a field based model for creating quick and easy grids with a minimum of markup.
ListView is a new addition in ASP.NET 3.5. ListView can literally replace all other data binding controls in ASP.NET. ListView control makes data binding easier than previous controls. It has included styling with CSS, flexible pagination, and sorting, inserting, deleting, and updating features.»
Что тут комментировать, хотел бы я знать как быстро вы сделаете букву «С» из CRUD для gridview. Я не знаю смотрели ли вы вообще на ListView, потому что похоже что нет. Так как через дизайнер с listview можно сделать все тоже что и с gridview. Это если вас так интересует какая-то пустая таблица которую надо быстро создать.
Смотрел и использую.
Для более простых задач ListView, для сложных отчетов — DevExpress ASPxGridView.
Однако, не видел раньше, что вижуал студио через визард может нагенерить страницу хтмла для Листвью — функционал аналогичный гриду и местами превосходящий, признаю. Хоть это и особенность среды, а не контрола.
В приведенной Вами цитате сказано, что ListView может заменить все остальные data-binding контролы. С этим я абсолютно согласен.
Но «официальная замена GridView» — ИМХО передергивание. Тогда и «официальная замена Repeater», и «официальная замена DataList». Хотя и не замена — эволюция всех этих контролов вместе взятых.
насколько я понял с кукбука по асп листвью не является полной заменой гридвью, а лишь является более упрощенным и быстрее работающим вариантом, соответсвенно с меньшим функционалом, например как вы заметили автосортировки столбцов.
там так же пишется что наиболее быстродействующим является репитер, но у него нет никаких настроек отображения, все нужно делать самому.
в общем инструменты разного уровня сложности и гибкости, для одной цели
Ой ли официальная? В МСДН пишут:The ListView control displays data in a format that you define by using templates and styles. It is useful for data in any repeating structure, similar to the DataList and Repeater controls.
Во всей статье ни разу не упоминается GridView, зато постоянно similar to the DataList and Repeater controls.
Как по мне — так никакая это не замена, тем более официальная. Новый контрол, где-то посерединке между предыдущими. По духу ИМХО ближе к репитеру.
А эволюцией репитера его, если не ошибаюсь, Джо Стагнер в видеоуроке называл.
официальная потому что от микрософт
замена не явная, конечно, но замена
потому что практически полностью повторяет функционал gridview и вы сейчас не найдете ни одного современного примера с gridview
на всех сайтах используется listview
к тому же listview с помощью DataPager и linqdatasource выбирает только те данные которые необходимы для отображения страницы
asp.net: ListView с разных сторон