这是我当前的查看代码:

<% 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属性。

10-06 03:28