MVC Kendo网格传递dropdownlist值来更新方法

时间:2014-08-12 18:55:10

标签: c# asp.net-mvc kendo-ui kendo-grid kendo-dropdown

我有一个剑道网格:

@(Html.Kendo().Grid<Grid>().Name("Grid")
      .DataSource(ds => ds
          .Ajax()
          .Model(model => model.Id(m => m.ID))
          .Read(read => read.Action("Grid_Read", "Sessions", new {sessionId = ViewBag.SessionID}))
              .Update(update => 
update.Action("Grid_Update", "Sessions", new { 
sessionId = ViewBag.SessionID, qcStateId = '????'}))
              .PageSize(10)
              .Batch(true)
          )
          .ToolBar(toolbar => 
          {
              toolbar.Template(
                    "| Set selected to: " + @Html.Partial("EditorTemplates/QCStatusHeader"));
          }
          )

QCStatusHeader:

@(Html.Kendo().DropDownList()
    .Name("QCStatusHeader")
    .DataValueField("Id")
    .DataTextField("Name")
    .BindTo((List<NomadBase.Web.ViewModels.Shared.QCStateViewModel>)ViewBag.PossibleQCStatesHeader)

如何将QCStatusHeader下拉列表中的选定值添加到对控制器的更新调用中?

1 个答案:

答案 0 :(得分:2)

非常简单的解决方案,使用javascript方法添加.Data选项以返回当前所选的ddl值。

.Update(update => update.Action("Grid_Update", "Sessions", new {sessionId = ViewBag.SessionID})
    .Data("QCStatusHeaderValue"))

function QCStatusHeaderValue() {
        var value = $('#QCStatusHeader').data("kendoDropDownList").value();
        return { qcStateId: value };
    }