Kendo MVC Grid依赖于dropDownList

时间:2015-10-14 07:05:36

标签: asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc

我有kendo网格,我需要在两个单元格中内联编辑两个dropDownLists。第二个列表取决于第一个。第二个可以有0或X项。当为0秒时,如何在保存项目时向服务器发送空值?

网格看起来像这样:

columns.Bound(work => work.Project).ClientTemplate("#=Project.Name#").Width(350); // 1 DropDownList
columns.Bound(work => work.Spp).ClientTemplate("#=Spp.Code#").Width(100);
columns.Bound(work => work.Operation).ClientTemplate("#=Operation.Code#").Width(100);// 2 DropDownList

.DataSource(dataSource => dataSource
                            .Ajax()
                            .Batch(false)
                            .Events(events => events.RequestEnd("OnRequestEnd_TopLinePriceGrid"))
                            .PageSize(20)
                            //.Events(events => events.Error("error_handler"))
                            .Model(model =>
                            {
                                model.Id(p => p.Id);
                                model.Field(p => p.Operation).DefaultValue(ViewData["defaultOperation"] as TT.ViewModel.OperationViewModel);
                                model.Field(p => p.Spp).DefaultValue(ViewData["defaultSpp"] as TT.ViewModel.SppViewModel);
                                model.Field(p => p.Project).DefaultValue(ViewData["defaultProject"] as TT.ViewModel.ProjectViewModel);
                            })
                            .Read(read => read.Action("WorkRead", "Home").Data("currentWeekInfo")) // Přidádo HTTP parametr s vybranným týdnem
                            .Create(update => update.Action("EditingInline_Create", "Home").Data("currentWeekInfo"))
                            .Update(update => update.Action("EditingInline_Update", "Home").Data("currentWeekInfo"))
                            .Destroy(update => update.Action("EditingInline_Destroy", "Home").Data("currentWeekInfo"))
                           )

操作的编辑器模板:

@(Html.Kendo().DropDownList()
        .Name("Operation")
        .OptionLabel("Choose operation...")
        .CascadeFrom("Project")
        .DataValueField("Id")
        .DataTextField("Code")
                          .DataSource(source =>
                          {
                              source.Read(read =>
                              {
                                  read.Action("GetCascadeOperations", "Home")
                                        .Data("filterOperations");
                              }).ServerFiltering(true); ;
                          })
                          .Enable(false)
                          .AutoBind(false)
)

当我点击保存时,我总是在请求中默认值为fot操作。 渴望得到任何帮助!

1 个答案:

答案 0 :(得分:0)

要向服务器发送空值,模型中的相应字段(操作)应为可空类型。此外,DropDownList应定义OptionLabel,并且(如果它的原始类型)ValuePrimitive选项设置为 true