ASP.NET MVC3 Webgrid每条记录有两行

时间:2011-09-12 04:46:07

标签: asp.net asp.net-mvc-3 webgrid

我无法通过WebGrid呈现数据,每条记录都有两行。

我的数据应以表格格式显示,但由于列太多而其中一列实际上有太多数据(完整地址),我想为每条记录显示两行。

关于如何实现这一目标的任何想法?谢谢。

我希望为每条记录看到的表格标记的一个简单示例是:

<tr>
<td>
    123456
</td>
<td>
    string
</td>
<td>
    string
</td>
<td>
    <input type="checkbox" name="ProductIds" value="1">
</td>
</tr>
<tr>
<td colspan="4">
    <div>
    </div>
</td>
</tr>

3 个答案:

答案 0 :(得分:0)

<tr><td>
<table>
<tr>
<td>123456</td>
<td>string</td>
<td>string</td>
<td><input type="checkbox" name="ProductIds" value="1" /></td>
</tr>
<tr><td colspan="4">http://link</td></tr>
</table>
</td></tr>

答案 1 :(得分:0)

我会创建一个只有一列的网格。然后,使用格式(grid.Column的第二个参数)类型为Func的事实。因此,您可以使用它来创建一个新的HtmlString:

grid.Column("AnyOldColumnName", format: item => new HtmlString(// Code to render a table with two rows))

即,使用lambda函数中的item参数来呈现具有两列的表。

我从未这样做过,也不知道它会有什么样的表现。但我认为这是最好的选择。

答案 2 :(得分:0)

@grid.GetHtml(tableStyle: "webgrid1", columns: grid.Columns(grid.Column(grid.Column(format: item => new HtmlString("<table>"+
                                      "<tr>"+ "<td>"+@lblField1+"</td>"+"<td>"+@lblField2+"</td>"+"<td>"+@lblField3+"</td>"                                                                        
                                      +"</tr>" +"<tr>"+ "<td>"+@item.Field1+"</td>"+"<td>"+@item.Field2+"</td>"
                                      +"<td>"+@item.Field3+"</td>" +"</tr>" +"<tr>"+ "<td>"+@lblField4+"</td>"
                                      +"<td>"+@lblField5+"</td>" +"<td>"+@lblField6+"</td>" +"</tr>"+"<tr>"+
                                      "<td>"+"</td>"+ "<td>"+@item.Field4+"</td>" +"<td>"+@item.Field5+"</td>"
                                      +"<td>"+@item.Field6+"</td>" +"</tr>" +"</table>"))))