Senden Sie das Formular mit Kendo MVC Grid-und anderen Elementen

Ich versuche ein Formular mit einem telekik MVC grid-und anderen Elementen zu unterbreiten.

  • View-Modell enthält drei string-Felder und ein IEnumerable Sammlung.
  • Das raster ist server gebunden. Ich bin nicht hinzufügen, Elemente löschen oder alle Elemente aus der Liste mit Hilfe der raster aber raster enthält ein Kontrollkästchen zugeordnet, um eine boolean-Spalte in der Liste Elemente.

Immer wenn ich dieses Formular abgesendet haben die drei string-Elemente zurück in die post-Methode, aber Liste ist immer null.

Hier ist das Daten-Modell:

public class Parent
{
    public string Field1{get;set;}
    public string Field2{get;set;}
    public string Comments {get;set;}
    public IEnumerable<ChildItems> Children{get;set;}

}

Public class ChildItems
{
    public string ChildField1{get;set;}
    public string ChildField2{get;set;}
    public boolean Include{get;set;}

}

Hier ist meine Ansicht:

@{
    ViewBag.Title = "Index";
}
@model GridInForm.Models.Parent


@using(Html.BeginForm("Save", "Home"))
{
    <fieldset>
        <legend>Editing Parent</legend>

        @Html.LabelFor(parent => parent.Field1)
        @Html.EditorFor(parent => parent.Field1)

        @Html.LabelFor(parent => parent.Field2)
        @Html.EditorFor(parent => parent.Field2)
        @Html.LabelFor(parent => parent.Comments)
        @Html.EditorFor(parent => parent.Comments)
        @(Html.Kendo().Grid(Model.Children)
              .Name("Children")
              .ToolBar(tools => tools.Create().Text("Add new Children"))
              .Editable(editable =>      editable.Mode(GridEditMode.PopUp)
               .CreateAt(GridInsertRowPosition.Bottom))
              .Columns(columns =>
              {
                  columns.Bound(p => p.ChildField1).ClientTemplate("#= ChildField1 #" + 
                    "<input type='hidden' name='ChildField1[#= index(data)#].ChildField1'        
                     value='#= Name #' />"
                  );

                  columns.Bound(p => p.ChildField2).Hidden().ClientTemplate("#= ChildField1
                   #" +
                    "<input type='hidden' name='ChildField1[#= index(data)#].ChildField1' 
                  value='#= ChildField1 #' />"
                  );

                  columns.Command(command => 
                      {
                         //command.Destroy();
                          command.Edit();
                      }
                      ).Width(100);
              })
              .DataSource(dataSource => dataSource.Server().Create("Create", 
              "Home").Read("Index", "Home").Update("Update", "Home")
                   .Model(model => 
                       {
                           model.Id(p => p.ChildField1);
                           model.Field(p => p.ChildField1).Editable(false);
                       })
                   //.ServerOperation(true)
              )
        )
    </fieldset>

    <input type="submit" value="Save" />
}

<script>

function index(dataItem) {
    alert("bindind");
    var data = $("#Products").data("kendoGrid").dataSource.data();

    return data.indexOf(dataItem);
}

</script>

Wenn ich das Formular abschicken bekomme ich die Eltern-Elemente zurück in die Ansicht Modell, aber das Inumerable Felder aus dem grid sind immer null..

Ist dies einfach nicht der Weg, dies zu tun und wenn ja, was ist der Weg zu acommplish so etwas wie dieses. Ich hatte dieses Problem bei früheren Versionen von telerik und ich sehe es ist das gleiche auf die Kendo-UI. Jede Richtung würde sehr geschätzt werden. Dies wurde entlang gehen am Problem.

Ich habe das gleiche problem mit einer form, die ich arbeite. Jede Hilfe wäre auf jeden Fall werden es zu schätzen wissen. Das ist unnötig frustrierend.

InformationsquelleAutor user2016808 | 2013-01-28

Schreibe einen Kommentar