2011-01-04 2 views
1

Я думаю, что вопрос может показаться немного странным, но вот подробности.Repeater Vs String Builder

Цель: Извлечь набор пар (текст, значение) по различным причинам. одним из примеров для них является извлечение алфавита, каждая буква будет использоваться в качестве привязки или LinkButton, текстовое значение будет буквой, а событие click примет часть значения пары и поместит ее в stringFormat() чтобы сформировать «URL-адрес, параметризованный»

Я использовал два подхода для этой цели, но я не знаю, что лучше!

1. Использование Repeater

Ретранслятор, который будет иметь LinkButton в это ItemTemplate и через эти блоки и установить текст в «текст» и с помощью Eval и «значение» для создания QueryString.

2. Использование StringBuilder

Создать экземпляр StringBuilder использовать цикл со счетчиком, равным общей суммой пар, которые будут получены. и добавить определенную строку формата, который будет строить длинную строку со всеми необходимыми анкерами для навигации с помощью какого-то кода, как этого

Links_strngBuilder.Append(string.Format("<a href='/data.aspx?page={0}'>{0}</a>", chrctr)) 

и, наконец, преобразовать экземпляр строки Builder в строку и назначить его на этикетку

Примечание: поля текста и значения chrctr будут получены, как вы предлагаете [в каждом цикле из базы данных] или [загружены в массив/массивList/List <>, чтобы сохранить значения и сохранить все эти соединения в db]

ответ

1

Где я работаю, мы никогда не будем использовать строку создавая конструктора. Мы не хотим, чтобы дизайнер в коде, если он должен сделать простые изменения. поэтому сохраните разметку в представлении и кодовом коде в коде.

Редактировать

Другое преимущество повторителя является изменение цикла намного проще. Не нужно перекомпилировать и, возможно, переустановить настройку пользовательского интерфейса, просто отредактируйте шаблон ASPX, сохраните и обновите.

+0

+1 yh вы правы, StringBuilder будет усложнять ситуацию. но я искал полное сравнение или, по крайней мере, самые важные моменты, такие как производительность и масштабируемость. – lKashef

1

Я ничего о том, как эти два подхода выполнения (с точки зрения использования памяти и скорости), не знаю, по сравнению друг с другом, но я определенно пойти на повторитель, потому что:

  • код намного проще чтобы понять & support
  • Использование StringBuilder напоминает мне дни классического ASP, когда Response.Write широко использовался.
  • Вы не можете использовать какие-либо преимущества Visual Designer с StringBuilder.

- Павел

+0

довольно тот же ответ, что и Ким, но более подробно, спасибо! +1. все еще надеясь получить немного больше информации о PROS и CONS для каждого подхода. – lKashef

0

Я думаю, что строительство выхода подходит больше в стороне клиента (например.когда вы выполняете вызов ajax и хотите показать результаты в html), чем на стороне сервера, за исключением случаев, когда вы создаете настраиваемый серверный элемент управления.

Кроме того, если вы используете ретранслятор, у вас есть опция расширяемости при изменении требований, и у вас больше возможностей управления и средств (например, обработка событий и стилизация с помощью css и т. Д.).