Kendo UI aggiungere DropDownList in Griglia (MVC)

Sono Vincolanti per una classe di Griglia (UserId,FirstName,LastName,a Scelta).
Qualcuno sa come mettere questo codice in una colonna (a Scelta) in una Kendo Griglia in MVC 4:

@(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???

Anche io ho bisogno di un testo (“Opzione1”, o “Opzione2”) nel BackEnd di Codice.
Soluzioni?
Grazie in anticipo.

A cura

Ho fatto esattamente quello che hanno detto:

Vista:

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

Controller:

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();
        }       

Ma questo non funziona…

InformationsquelleAutor Jake | 2013-09-12

 

2 Replies
  1. 0

    Hai solo bisogno di tp dare un occhiata alla documentazione che forniscono : http://demos.kendoui.com/web/grid/editing-custom.html

    È una griglia personalizzata, così ci POSSONO essere anche alcuni JS modifiche sono coinvolti anche. Si sono vincolanti dal tuo modello, e il kendo.js si occuperà del resto.

    @(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"))
    )
    )

    Tuo file csHTML deve associare l’ingresso e passback sul grilletto, a seconda di quale si sta facendo.

    • Ho detto a me stesso tempo ho letto che hanno pubblicato un demo quando ho guardato. dove è ).ClientTemplate("#=Category.CategoryName#"). definito. Immagino che punti a un stand alone kendo ddl, o sono io completamente sbagliato. Non solo vedere come un po ‘ di codice esegue il rendering di un ddl
    • Il codice di solito render dll farà uso di una sintassi e di iis per l’associazione come si deve. Il suo stato un po ‘ da quando ho avuto a che fare con il rasoio, ma ill tornare e fare un doppio controllo per assicurarsi! Mi ricordo il kendo non è stato il più user friendly con mvc se non ricordo male!
    • Guardare i Documenti e sotto la sezione HTML sembra un po ‘ più chiaro di quello che sta succedendo. So che il tuo codice è dritto fuori i Documenti e da ciò che è dato ClientTemplate("#=Category.CategoryName#") non significa niente per me.
    • beh, l’opzione logica è che il param dal modulo HTML sarebbe questa Categoria.Nomecategoria ingresso vincolato dal modulo di back-end tramite HTTP.POST valore al momento im utilizzando nancy server e owin molto di più che lavorare con i valori registrati delimitata tramite ajax per C# backend (tenetela rigorosamente digitato possibile), ma questo sarebbe il logico risultato.. di Nuovo avrà bisogno di fare un controllo!
    • Sto lavorando con questo stesso tipo di problema, tranne che voglio aggiornare la lista degli articoli per la discesa, DOPO che la rete ha reso. L’attuale dropdownlist è definito al momento della griglia viene eseguito il rendering. Il modello carica solo una volta. Quindi come potrei aggiornare la lista o il modello dopo la griglia di rendering?

Lascia un commento