Hi guys,
It’s possible to make a control dropdownlist with settings cascade enabled and filtered by contains too. I show you the scenario:
Grid code
Editor template
$("#CatalogReference" + temporalFare).data("kendoDropDownList")
Here, I find the error. Browser say me this expression is undefined
Controller Code
I hope this is helpful code.
Thanks in advance.
Xavier.
It’s possible to make a control dropdownlist with settings cascade enabled and filtered by contains too. I show you the scenario:
Grid code
@(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#"
});
Editor template
@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()
};
}
$("#CatalogReference" + temporalFare).data("kendoDropDownList")
Here, I find the error. Browser say me this expression is undefined
Controller Code
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 this is helpful code.
Thanks in advance.
Xavier.