Разница между HtmlTable и TagBuilder («таблица») - PullRequest
3 голосов
/ 15 июня 2010

Просто интересно, какова разница между этими двумя и какая польза для одного или другого из них, когда я создаю свой стол в своем HtmlHelper

HtmlTable table = new HtmlTable();

и:

TagBuilder table = new TagBuilder("table");

Это более или менее так же, как этот вопрос,

Зачем использовать TagBuilder вместо StringBuilder?

, но мне более интересно узнать разницу междуэти двое.

1 Ответ

5 голосов
/ 15 июня 2010

Основное отличие состоит в том, что HtmlTable предоставляет типизированные и правильно именованные свойства для всех допустимых атрибутов HTML элемента <table> (например, Width, Height, CellSpacing и т. Д.).Он также имеет свойство Rows, которое представляет собой типизированную коллекцию объектов HtmlTableRow, каждый из которых представляет элемент <tr>.

TagBuilder - это гораздо более общий API, который, безусловно, можно использовать для созданияHTML <table>, но вам нужно было бы выполнять больше работы менее безопасным и менее удобным для чтения способом.

Один конкретный пример, в котором HmlTable помогает таким образом, которого нет TagBuilder, вустановка атрибута width="" для элемента <table>.

С HtmlTable:

HtmlTable htmlTable = new HtmlTable();
htmlTable.Width = "100px";

С TagBuilder:

TagBuilder tagBuilder = new TagBuilder("table");
tagBuilder.Attributes["width"] = "100px";

Примечаниечто при TagBuilder и имя элемента table, и имя атрибута width являются строками, которые предоставляют две возможности ошибки (орфографические ошибки), которые не возникают при использовании HtmlTable.

...