【问题标题】:Combine array values into a single value to display in a single column of a grid将数组值组合成单个值以显示在网格的单个列中
【发布时间】:2012-05-25 06:08:43
【问题描述】:

我有一个使用 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");
 }

我该怎么做?

【问题讨论】:

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


    【解决方案1】:

    您不能将数组作为单列

    您应该在模型中将其设为字符串,或者在连接数组中使用另一个属性:

    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");
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多