将数组值合并为单个值以显示在网格的单个列中

时间:2012-05-17 16:20:39

标签: c# asp.net-mvc asp.net-mvc-3 c#-4.0 telerik

我有一个使用telerik网格控件的MVC3应用程序。我正在填充网格,但我使用的模型中有一个需要在一列中显示的数组。继承我的模特

public class MyModel
{
    public string parentName {get; set;}
    public string[] childrenNames { get; set; }
}

现在用控制器中的数据填充我的类:

 public ActionResult Index()
 {
            var loo = new MyModel[2];
            loo[0] = new MyModel();
            loo[0].parentName = "Troy";
            loo[0].childrenNames[0] = "chris";
            loo[0].childrenNames[1] = "tony";
            loo[1] = new MyModel();
            loo[1].parentName = "Mike";
            loo[1].childrenNames[0] = "lee";
            loo[1].childrenNames[1] = "mary";

            IEnumerable<MyModel> model = loo;
        return View(model);

 }

现在我的childrenNames数组可以并且将有多个条目,但是我需要将childrenNames组合成一个用逗号分隔的值并显示在我的网格中:

@model IEnumerable<MyModel>
@(Html.Telerik().Grid(Model)
.Columns(columns =>
{
    columns.Bound(o => o.parentName).Width(100).Title("Parent");
    columns.Bound(o => o.childrenNamesCombined).Width(250).Title("Kids");
 }

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您不能将数组作为单个列

你应该在模型中使它成为字符串,或者使用连接数组的另一个属性:

public class MyModel
{
    public string parentName {get; set;}
    public string[] childrenNames { get; set; }
    public string JoinedNames { get; set; }
}

loo[1] = new MyModel();
..
...
loo[1].JoinedNames  = string.Join("," loo[1].childrenNames);

@(Html.Telerik().Grid(Model)
.Columns(columns =>
{
    columns.Bound(o => o.parentName).Width(100).Title("Parent");
    columns.Bound(o => o.JoinedNames).Width(250).Title("Kids");
 }