Ваша XElement
структура довольно повреждена (вы определяете tr
элементы внутри td
элементов внутри других td
элементов); довольно непредсказуемо, как браузер будет отображать результат. Вот как это выглядит:
<html>
<body>
<h2>Your entire inventory:</h2>
<table>
<tr>
<th>Product</th>
<th>Quantity</th>
</tr>
<tr>
<td>Nissin rich & savory chicken bw - 6 pack<td>5</td><tr /></td>
<td>The Zombie Survival Guide<td>3</td><tr /></td>
<td>Maruchan Ramen Noodle Soup<td>5</td><tr /></td>
<td>Generic Tomatoes, Whole<td>2</td><tr /></td>
</tr>
</table>
</body>
</html>
Для начала вам нужно исправить код генерации HTML (см. Ниже).
Поскольку вы намереваетесь использовать свой HTML в электронных письмах, вам следует избегать встроенных таблиц стилей (несмотря на их призыв избегать повторения кода). Некоторые почтовые (веб) клиенты, особенно Gmail, просто игнорируют встроенные таблицы стилей (см. Использование CSS и HTML в информационных бюллетенях электронной почты ). В большинстве случаев для электронных писем в формате HTML безопаснее использовать встроенные стили.
Чтобы ввести некоторый интервал между вашими двумя столбцами, вы можете определить атрибут style="padding-right:50px;"
строки для всех ячеек в левом столбце; это обеспечит наличие 50 пикселей пробела между самым длинным названием продукта и столбцом количеств.
var html = new XDocument(
new XElement("html",
new XElement("body",
new XElement("h2", "Your entire inventory:"),
new XElement("table",
new XElement("tr",
new XElement("th", "Product",
new XAttribute("style", "padding-right:50px;")),
new XElement("th", "Quantity")),
from item in prodList
select new XElement("tr",
new XElement("td", item.ProductName,
new XAttribute("style", "padding-right:50px;")),
new XElement("td", item.Quantity))))));
Приведенный выше код сгенерирует:
<html>
<body>
<h2>Your entire inventory:</h2>
<table>
<tr>
<th style="padding-right:50px;">Product</th>
<th>Quantity</th>
</tr>
<tr>
<td style="padding-right:50px;">Nissin rich & savory chicken bw - 6 pack</td>
<td>5</td>
</tr>
<tr>
<td style="padding-right:50px;">The Zombie Survival Guide</td>
<td>3</td>
</tr>
<tr>
<td style="padding-right:50px;">Maruchan Ramen Noodle Soup</td>
<td>5</td>
</tr>
<tr>
<td style="padding-right:50px;">Generic Tomatoes, Whole</td>
<td>2</td>
</tr>
</table>
</body>
</html>