Hello,
We have a grid with two fields, each field has assigned a dropdownlist. The second dropdownlist has a behavior different, this dropdowonlist has enabled option
cascade and filtre with contains value. The question is, is it possible?
I show you the scenario:
Code Grid
Editor Template
Function filterTypes
We have a grid with two fields, each field has assigned a dropdownlist. The second dropdownlist has a behavior different, this dropdowonlist has enabled option
cascade and filtre with contains value. The question is, is it possible?
I show you the scenario:
Code Grid
@(Html.Kendo().Grid<FareDetailViewModel>() .Name("fare_details#=FareID#") .ToolBar(t => { if (User.IsInRole("Modify")) { t.Create().Text("Afegir Referencia"); } }) .Columns(columns => { columns.ForeignKey(f => f.Tipus, (System.Collections.IEnumerable)ViewBag.CatalogTypes, "Key", "Value").EditorTemplateName("CustomGridForeignKeyFareType").Width(120); //columns.ForeignKey(f => f.CatalogReference, (System.Collections.IEnumerable)ViewBag.Cataleg, "Reference", "Descripcio").EditorTemplateName("CatalegReferenceByType"); columns.Bound(f => f.CatalogReference).EditorTemplateName("CatalegReferenceByType").EditorViewData(new { gridid = "fare_details#=FareID#" });@model object@(Html.Kendo().DropDownList() .Name("CatalogReference" + ViewData["gridid"]) .HtmlAttributes(new { data_bind = "value:CatalogReference" }) .AutoBind(false) .OptionLabel("Select reference...") .DataTextField("Descripcio") .DataValueField("Reference") .Filter(FilterType.Contains) .MinLength(3) .ValuePrimitive(true) //.HtmlAttributes(new { data_skip = "true", data_bind = "defferedValue: object" }) //.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"]) .DataSource(source => { source.Read(read => read.Action("PopulateReferences", "Catalog").Data("filterTypes")) .ServerFiltering(true); }) .CascadeFrom("Tipus") .HtmlAttributes(new { id = Guid.NewGuid().ToString() }))function filterTypes() { return { text: $("#Type").data("kendoDropDownList").value() + "|" + $("#CatalogReference" + temporalFare).data("kendoDropDownList").filterInput.val() }; Clarification:
1) temporalFare the value maybe be for example fare_details26
2) $("#CatalogReference" + temporalFare).data("kendoDropDownList").filterInput.val() ===> Presents an error: Undefined.Action on controller
public JsonResult PopulateReferences(string text) { var param = text.Split('|'); var type = (int)text[0]; var search = text[1]; var catalog = GetCatalog((catalogType)type).Where(c => (c.Descripcio + " " + c.Reference).Contains(search)).Select(c => new { Reference = c.Reference, Descripcio = c.Descripcio + " - " + c.Reference }).AsQueryable(); return Json(catalog, JsonRequestBehavior.AllowGet); }
I hope that we can
clarify on this topic
Thanks in advance.
Xavier.