Пользовательская сетка asp.net против GridView / ListView - PullRequest
1 голос
/ 05 мая 2009

Несколько лет назад я решил создать свой собственный DataGrid, так как мне не нравился стандартный, предоставленный Microsoft. Это очень простая функция, которая принимает DataTable в качестве входного параметра и возвращает строку (HTML-код для отображения таблицы на веб-странице).

Он очень гибкий (есть некоторые необязательные параметры для разбивки на страницы, сортировки и форматирования каждого столбца так, как я хочу) и быстрый (только те записи, которые используются, извлекаются из базы данных). Сама функция очень короткая (около 20 строк кода). Я использую его как минимум 4 года.

Предполагая, что на вашей веб-странице есть PlaceHolder, вы должны вызывать пользовательскую функцию следующим образом:

MyPlaceHolder.Controls.Add(new LiteralControl(CreateCustomGrid(MyDataTable)))

CreateCustomGrid (MyDataTable))) будет возвращать что-то вроде этого (если MyDataTable имеет 2 столбца и 2 строки):

<table class="MyClass"  rules="all">
  <tr>
      <th>Column1</th>
      <th>Column2</th>
  </tr>
   <tr>
      <td align="center">Value1</td>
      <td align="center">Value2</td>
  </tr>
    <tr>
      <td align="center">Value3</td>
      <td align="center"><a href=’MyLink’>Value4</a></td>
  </tr>
  </table>

Внутренне функция знает, как форматировать каждый столбец (эта функция используется только на одном веб-сайте), но ее также можно изменить для каждого отдельного столбца, используя дополнительные параметры. То же самое для подкачки и сортировки. В целом, он очень гибкий и очень простой в использовании.

Теперь все изменилось, и DataGrid был заменен GridView и / или ListView. Я смотрел на них, но я не вижу ничего, что они делают, чего не делает моя функция, поэтому я бы соблазнился продолжать использовать свою функцию, но я мог бы что-то упустить. В то же время, выглядит немного странно продолжать использовать пользовательскую функцию для генерации HTML-таблицы. Что вы думаете об этом?

Ответы [ 2 ]

1 голос
/ 05 мая 2009

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

0 голосов
/ 05 мая 2009

Я бы сказал, что вы должны исследовать GridView / ListView, чтобы увидеть, что они могут сделать, но, в конечном счете, если вы и ваши клиенты довольны вашим собственным кодом, и он работает для вас, делает все, что вам нужно, то есть не нужно менять только потому, что есть что-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...