Custom editing - binding dropdownlist to a grid cell

5 posts, 1 answers
  1. Shabtai
    Shabtai avatar
    38 posts
    Member since:
    Nov 2012

    Posted 02 May 2013 Link to this post

    Hi

    I'm trying to reproduce the custom editing sample with dropdownlist inside the gridcell.
    For some reason, the combo is not created...

    I'm attaching the project to this message.

    Do I miss any script for the project?

    Thank you in advance,
    Shabtai
  2. Answer
    Atanas Korchev
    Admin
    Atanas Korchev avatar
    8462 posts

    Posted 06 May 2013 Link to this post

    Hi,

     Which custom editing example are you trying to reproduce? We currently don't see any dropdownlist or combobox code in your project. 

     I recommend checking the following resources:
     - The editor templates help topic - explains how to create a custom editor template for a model property
     - The Kendo UI for ASP.NET MVC sample application. There is a custom editing demo:

               Kendo.Mvc.Examples\Areas\razor\Views\web\grid\editing_custom.cshtml
               Kendo.Mvc.Examples\Areas\razor\Views\web\grid\EditorTemplates\ClientCategory.cshtml
               Kendo.Mvc.Examples\Areas\razor\Views\web\grid\EditorTemplates\ClientEmployee.cshtml

    Regards,
    Atanas Korchev
    the Telerik team
    Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
  3. Shabtai
    Shabtai avatar
    38 posts
    Member since:
    Nov 2012

    Posted 06 May 2013 Link to this post

    Thank you so much for the reply!

    Pity there's no mentioning of client templates in the online sample:

    http://demos.kendoui.com/web/grid/editing-custom.html

    Besides, the functionality of grid (addition, editing...) doesn't work for me if the key column contains zero (0).
  4. Tim
    Tim avatar
    5 posts
    Member since:
    Mar 2015

    Posted 17 Mar 2015 Link to this post

    Hi All,

    I am trying to bind Dropdown in one of the columns for the incell editor Kendo Grid.
    I am not sure where I am going wrong, probably some basic mistake. 

    I have a Main View Page with the Editable Grid, Another view page to populate the dropdown in cell.
    The cell in the main grid is not populating as a dropdown list, basically it is not firing the dropdown view page.
    I am not really sure where I am going wrong, probably I am doing some basic mistake.

    MasterDataLookup.cshtml:

      @using (Html.BeginForm("ReplaySelectedMessages", "Home"))
         {
            <div id="gridContent">
           <h1></h1>  
        @(Html.Kendo().Grid<ViaPath.LookUpDataManagement.MvcApp.Models.MasterDataMappingModel>(Model)
        .Name("gridTable")    
        .HtmlAttributes(new { style = "font-family: verdana,arial,sans-serif; font-size: 11px;color: #333333;border-color: #999999;" })
        .Columns(columns =>
        {
            columns.Bound(p => p.ClientAppName).ClientTemplate("# try {# #=ClientAppName# #} catch (e) {}#").EditorTemplateName("ComboBoxLookup").Width(200);
            //columns.ForeignKey(p => p.ClientAppName, (System.Collections.IEnumerable)ViewData["ClientsApplications"], "ClientAppId", "ClientAppName");
            columns.Bound(p => p.SupplierAppName).Width(200);
            columns.Bound(p => p.ListName).Width(200);
            columns.Bound(p => p.ClientValueName).Width(200);
            columns.Bound(p => p.SupplierValueName).Width(200);
            columns.Bound(p => p.Direction).Width(200);
            columns.Command(command =>  {
                    command.Edit();
                    command.Destroy();
                }).Width(200);
           
        })
                .ToolBar(t => t.Create())
                .Editable(editable => editable.Mode(GridEditMode.InLine))
                .Filterable(e => e.Extra(false))
                .Pageable(page => page.PageSizes(new int[] { 10, 25, 50, 100 }).Enabled(true))
                .Sortable()
                .Scrollable(src => src.Height("auto"))
                .Resizable(resize => resize.Columns(true))
                .DataSource(
                    source => source
                        .Ajax() 
                        .ServerOperation(true)                  
                        .Model(model =>
                    {
                        model.Id(e => e.MasterDataMappingId);
                        model.Field(e => e.MasterDataMappingId).Editable(false);
                        //model.Field(e => e.ClientAppName).Editable(true);
                        model.Field(p => p.ClientAppName).DefaultValue(
                    ViewData["defaultApplications"] as ViaPath.LookUpDataManagement.MvcApp.Models.MasterDataMappingModel);
                        
                    })
                    .Create(create => create.Action("Create_MasterDataMapping", "Home"))
                    .Read(read => read.Action("Read_MasterDataMapping", "Home"))
                     .Update(update => update.Action("Update_MasterDataMapping", "Home"))
                     .Destroy(destroy => destroy.Action("Destroy_MasterDataMapping", "Home")))
                     
                // .ClientDetailTemplateId("MasterDataListTemplate")
                // .ToClientTemplate()
                 
                )


    ComboBoxLookup.cshtml

    @model IEnumerable<ViaPath.LookUpDataManagement.MvcApp.Models.ApplicationsModel>    

    @using ViaPath.LookUpDataManagement.MvcApp




    @(Html.Kendo().DropDownListFor(m => m)
            .Name("ComboBoxLookup")
            .DataValueField("AppId")
            .DataTextField("ApplicationName")
            .BindTo((System.Collections.IEnumerable)ViewData["Applications"])
    )

    Controller.cs

     public ActionResult MasterDataLookUp()
            {        
                List<MasterDataMappingModel> masterDataMappings = null;
                masterDataMappings = GetMasterDataMapping();

                ViewData["Applications"] = masterDataMappings.Select(p => new
                {
                    ClientAppId = p.ClientAppId,
                    ClientAppName = p.ClientAppName

                }).Distinct();

                ViewData["defaultApplications"] = masterDataMappings.Select(p => new
                {
                    ClientAppId = p.ClientAppId,
                    ClientAppName = p.ClientAppName

                }).First();

              

                return View(masterDataMappings);
            }
  5. Vladimir Iliev
    Admin
    Vladimir Iliev avatar
    2196 posts

    Posted 19 Mar 2015 Link to this post

    Hi Dino,

    I would suggest to make sure the editor template is nested inside the "EditorTemplates" folder as mentioned in the following help article:

    If the editor template is correctly placed and still not loading - could you please open a new support ticket or forum post and provide runable example where the issue is reproduced? This would help us pinpoint the exact reason for current behavior.

    Regards,
    Vladimir Iliev
    Telerik
     

    Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

     
Back to Top