发布

时间:2017-03-09 15:53:40

标签: asp.net-mvc-4 kendo-ui kendo-asp.net-mvc kendo-dropdown

我正在为我的项目使用kendo UI。我有一个kendo下拉列表,我用json填充。我在下拉列表中获取值,但在帖子上,模型没有获得下拉列表的选定值。我被困在一天没有结果。我不知道我要去哪里。请查看代码

查看:

      @model IEnumerable<EntityFrameworkClasses.StaggingException>



                @foreach (var item in Model)
    {




        @(Html.Kendo().DropDownListFor(modelItem => item.Level2)
                  .Name("Level2")
                  .HtmlAttributes(new { style = "width:10%" })
                  .OptionLabel("Select level 2...")
                  .DataTextField("Text")
                  .DataValueField("Value")
                  .BindTo((System.Collections.IEnumerable)ViewBag.Level2)

        )
}


@(Html.Kendo().Grid(Model)
    .Name("CashExceptionsGridTest")
    .Columns(columns =>
    {



        columns.Bound(p => p.Category).Title("Category").Width(130);
        columns.Bound(p => p.EnterText1).Title("Comments").Width(130);
        columns.Bound(p => p.Dateoftransaction).Title("Date").Width(130);
        columns.Bound(p => p.InternalLocalAmount).Title("InternalAmt").Width(130);
        columns.Bound(p => p.ExternalLocalAmount).Title("ExternalAmt").Width(130);

    })
          .ToolBar(toolbar =>
                {
                     //toolbar.Template("<a class='k-button k-button-icontext' onclick='customCommand()' href='#'></span>Cutom Command</a>");

                         toolbar.Create(); // The "create" command adds new data items.
                          toolbar.Save();// The "save" command saves the changed data items.

                      })
        .Editable(editable => editable.Mode(GridEditMode.InCell)) // Use in-cell editing mode.
        .HtmlAttributes(new { style = "height: 550px;" })



    .HtmlAttributes(new { style = "height: 350px;" })
    .Pageable(pageable => pageable
    .Input(true)
    .Numeric(false)
    )
           .Reorderable(r => r.Columns(true))
             .Sortable()
             .ColumnMenu()
             .Scrollable(scr => scr.Height(430))
             .Filterable()
    .DataSource(dataSource => dataSource
    .Ajax()
    .PageSize(20)
    .ServerOperation(false)


                 .Batch(true) // Enable batch updates.
                           .Model(model =>
                                {
                                    model.Id(p => p.RowID); // Specify the property which is the unique identifier of the model.
                                    model.Field(p => p.RowID).Editable(false); // Make the ProductID property not editable.
                                })



              .Update("Editing_Update", "MultiTab")
              .Create("Editing_Create", "MultiTab")
               )




)
}

我有一个剑道网格,其中不包括代码简洁。

控制器:

  public ActionResult GetLevel()
            {
       IEnumerable<SelectListItem> Level2 = db2.StaggingInternalCashExceptions.Where(x=>x.LoadID==loadid).Select(c => new SelectListItem
            {

                Value = c.Level2.ToString(),
                Text = c.Level2

            }).Distinct();

            return  View();

            }

  [AcceptVerbs(HttpVerbs.Post)]
         public ActionResult Editing_Create([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<StaggingException> results)
         if (results != null && ModelState.IsValid)
         {
             foreach (var result in results)
              var entity = new StaggingException();
                     entity.RowID = result.RowID;
                     entity.Category = result.Category; //this is a textbox in the view for which i get the value
                     entity.Level1 = result.Level1; //gives null
//I'm adding those values to the db. Didn't include all that for the sake of keeping it short.
}
}

网格有批量编辑,一旦我点击保存更改,网格的数据就会发布到控制器,我可以在结果中看到它。我不能得到下拉值。 任何想法或主角请。 谢谢。

1 个答案:

答案 0 :(得分:1)

这个帖子的后期但是我有一个类似的问题,对于那些没有在模型中发布值的问题,如果你的模型值是一个可以为空的int? (无法从上面的帖子中看到...)然后你需要配置DropDownListFor,如下所示,以避免默认值绑定行为,以便在初始值为null时使用所选项更新字段。希望这有助于某人。

Html.Kendo().DropDownListFor(m => m)
.HtmlAttributes(new { data_value_primitive = "true" })