2

Grid クラス (UserId、FirstName、LastName、Choice) にバインドしています。このコードを MVC 4 の Kendo Grid の列 (Choice) に配置する方法を知っている人はいますか?

@(Html.Kendo().DropDownList()
      .Name("Test")
      .DataTextField("Text")
      .DataValueField("Value")
      .Events(e => e.Change("change"))
      .BindTo(new List<SelectListItem>()
      {
          new SelectListItem()
          {
              Text = "Option1",
              Value = "1"
          },
          new SelectListItem()
          {
              Text = "Option2",
              Value = "2"
          }
      }))
<script>
    function change() {
        var value = $("#Choice").val();
    }
</script>

....

columns.Bound(p=> p.FirsName);
columns.Bound(p => p.LastName);
//How to Bind Choice???

バックエンド コードにテキスト ("Option1" または "Option2") も必要です。解決策はありますか?

編集済み

私は彼らが言ったことを正確に行いました:

意見:

 columns.Bound(p => p.Choice).ClientTemplate("#=Choice#");

コントローラ:

public ActionResult Index()
    {
        PopulateCategories();
        return View();
    }
    

.....

 private void PopulateCategories()
        {
            var dataContext = new TestDB();
            var categories = dataContext.Peoples
                .Select(c => new People()
                {
                    ChoiceID = c.ChoiceID,
                    Choice = c.Choice
                })
                .OrderBy(e => e.Choice);
            ViewData["categories"] = categories;
            ViewData["defaultCategory"] = categories.First();
        }       
    

しかし、これはうまくいきません...

4

2 に答える 2

0

これは、必要なものを達成するのに役立つと思います -->>

http://www.kendoui.c​​om/forums/kendo-ui-web/grid/want-to-add-dropdownlist-in-my-grid.aspx

于 2013-10-17T20:02:38.923 に答える
0

彼らが提供するドキュメントを見てください: http ://demos.kendoui.c​​om/web/grid/editing-custom.html

これはカスタム グリッドであるため、JS の変更も含まれる場合があります。モデルからバインドしていて、残りは kendo.js が処理します。

@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.ClientProductViewModel>()
.Name("grid")
.Columns(columns =>
{
    columns.Bound(p => p.ProductName);
    columns.Bound(p => p.Category).ClientTemplate("#=Category.CategoryName#").Width(160);
    columns.Bound(p => p.UnitPrice).Width(120);
    columns.Command(command => command.Destroy()).Width(90);
})
.ToolBar(toolBar =>
    {
        toolBar.Create();
        toolBar.Save();
    })
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Pageable()
.Sortable()
.Scrollable()
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
    .Ajax()
    .Batch(true)
    .ServerOperation(false)
    .Events(events => events.Error("error_handler"))
    .Model(model =>
    {
        model.Id(p => p.ProductID);
        model.Field(p => p.ProductID).Editable(false);
        model.Field(p => p.Category).DefaultValue(
            ViewData["defaultCategory"] as Kendo.Mvc.Examples.Models.ClientCategoryViewModel);
    })
    .PageSize(20)
    .Read(read => read.Action("EditingCustom_Read", "Grid"))
    .Create(create => create.Action("EditingCustom_Create", "Grid"))
    .Update(update => update.Action("EditingCustom_Update", "Grid"))        
    .Destroy(destroy => destroy.Action("EditingCustom_Destroy", "Grid"))
)
)

csHTML ファイルは、トリガーに入力とパスバックをバインドする必要があります。

于 2013-09-12T15:44:14.537 に答える