2

テレリックのグリッドコントロールを使用した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をコンマで区切ってグリッドに表示する1つの値に結合する必要があります。

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

それ、どうやったら出来るの?

4

1 に答える 1

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");
 }
于 2012-05-17T16:26:28.617 に答える