2016-11-09 105 views
0

我想使用Html窗體從網格發送數據。在窗體中發送劍道網格

我的模式與此類似:現在

public class Exam 
    { 
      public int Id { get; set; } 

      public string Name { get; set; } 

      public int Duration { get; set; } 

      public virtual List<Question> AvailableQuestions { get; set; } 
    } 

    public class Question 
    { 
      public int Id { get; set; } 

      public string Content { get; set; } 

      public int Points { get; set; } 
    } 

,我認爲我有形式是這樣的:

@model Exam 
    @using (Html.BeginForm("Add", "Exams", FormMethod.Post)) 
    { 
     @Html.TextBoxFor(m => m.Name) 

     @(Html.Kendo().Grid<Question>(Model.AvailableQuestions) 
        .Name("availableQuestionsGrid") 
        .Columns(columns => 
        { 
         columns.Bound(c => c.Id); 
         columns.Bound(c => c.Content); 
         columns.Bound(c => c.Points); 
         columns.Template(@<text>/text>).ClientTemplate(@"<a class=""k-button-icontext k-grid-edit"" href=""\#"">Edit</a> | <a class=""k-button-icontext k-grid-delete"" href=""\#"">Delete</a>").Width(100); 
        }) 
        .Editable(editable => editable.Mode(GridEditMode.PopUp)) 
        .ToolBar(toolbar => toolbar.Template(@"<a class='k-button k-button-icontext k-grid-add' href='/Exams/Add?grid-mode=insert'><span class='k-icon k-add'></span>Add</a>")) 
        .DataSource(dataSource => dataSource 
         .Ajax() 
         .Batch(true) 
         .Model(model => model.Id(p => p.Id)) 
         .ServerOperation(false)) 
         ) 


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

當我輸入一些文字,添加一些問題,網格,然後單擊「保存」按鈕我有我的姓名字段綁定,但我的AvailableQuestions列表始終爲空。

是否可以在表單提交時將數據從網格傳遞給控制器​​?

回答

0

如何與表單一起提交劍道網格模型被證明並解釋在這裏:

http://www.telerik.com/support/code-library/submit-form-containing-grid-along-with-other-input-elements

的想法是,對於每一列必須指定其具有保持在一個隱藏的輸入模板該項目的價值。

+0

請仔細注意該代碼庫頁面上列出的缺點。這項技術只適用於小型單頁數據集,您需要處理*每行*,而不僅僅是服務器上的新/更改行。 –