在 Kendo Grid 的单个列中发布数据列表
Posting a list of data in a single col in Kendogrid
我想在我的网格中做这样的事情......这基本上是我目前所拥有的:
@(Html.Kendo().Grid(Model)
.Name("childgrid_#=ParentId#")
.Columns(columns =>
{
columns.Bound(o => o.Object1Name).Title("Message Types").Width(200);
columns.Bound(p =>
foreach(Object2 obj2 in Object2Props)
{
obj.Object2Id
obj2.Object2Name
}
).ClientTemplate("#=ParentId#");
})
....
我的视图模型:
public class Object1
{
public int Object1Id{ get; set; }
public string Object1Desc { get; set; }
public List<Object2> Object2Props{ get; set; }
}
public class Object2
{
public int Object2Id { get; set; }
public string Object2Name { get; set; }
}
这能做到吗?如果是这样怎么办?谢谢!
你可以使用服务器端 Template()
,像这样:
columns.Template(@<text>
<table>
@foreach(var i in item.Object2Props)
{
<tr>
<td>@i.Object2Id</td>
<td>@i.Object2Name</td>
</tr>
}
</table>
</text>);
或客户端模板:
columns.Template(p => { }).ClientTemplate("#=templateFunction(data)#");
其中 templateFunction
是 return 构造的 html 的 javascript 函数,参数 data
是相应行的数据项:
<script>
function templateFunction(data)
{
return ....;
}
</script>
我想在我的网格中做这样的事情......这基本上是我目前所拥有的:
@(Html.Kendo().Grid(Model)
.Name("childgrid_#=ParentId#")
.Columns(columns =>
{
columns.Bound(o => o.Object1Name).Title("Message Types").Width(200);
columns.Bound(p =>
foreach(Object2 obj2 in Object2Props)
{
obj.Object2Id
obj2.Object2Name
}
).ClientTemplate("#=ParentId#");
})
....
我的视图模型:
public class Object1
{
public int Object1Id{ get; set; }
public string Object1Desc { get; set; }
public List<Object2> Object2Props{ get; set; }
}
public class Object2
{
public int Object2Id { get; set; }
public string Object2Name { get; set; }
}
这能做到吗?如果是这样怎么办?谢谢!
你可以使用服务器端 Template()
,像这样:
columns.Template(@<text>
<table>
@foreach(var i in item.Object2Props)
{
<tr>
<td>@i.Object2Id</td>
<td>@i.Object2Name</td>
</tr>
}
</table>
</text>);
或客户端模板:
columns.Template(p => { }).ClientTemplate("#=templateFunction(data)#");
其中 templateFunction
是 return 构造的 html 的 javascript 函数,参数 data
是相应行的数据项:
<script>
function templateFunction(data)
{
return ....;
}
</script>