这是我当前的查看代码:
<% Html.Grid((List<ColumnDefinition>)ViewData["Parameters"])
.Columns(column =>
{
column.For(c => c.ID);
column.For(c => c.Name);
}).Render();
%>
我想将HTML“ id”属性附加到每个“名称” td标签上,如下所示:
<table class="grid">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr class="gridrow">
<td>1</td>
<td id="parameter_1">Address</td>
</tr>
<tr class="gridrow_alternate">
<td>2</td>
<td id="parameter_2">Phone Number</td>
</tr>
</tbody>
</table>
我的问题:
我该怎么做呢?
我考虑了“属性”扩展方法,但不确定如何使它起作用。
最佳答案
语法很奇怪,但是确实有效。乔希的答案是正确的。这是完整的答案,使用我当前项目中的一行。这包括使用多个属性的语法:
col.For(ts => ts.Subtitle.Abbreviation)
.Named("Subtitle<br />Language")
.Attributes(x => new Dictionary<string, object>()
{ // { "name", "value" }; results in:
{ "title", x.Item.Subtitle.Text }, // title="someLanguage"
{ "class", "someCssClass" }, // class="someCssClass"
{ "id", "someIdOrOther' } // id="someIdOrOther"
});
您可以根据需要包含任意数量的名称/值对。如果您需要使用该行对象中的数据,则每个人都可以访问lambda变量(在上例中为
.Item
)的x
属性。