I have a kendo grid that is filtered by pushing values from a dropdownlist into the built in kendo filters. I can search the grid using the same method when I type values in a textbox and search. This is my kendo grid and the dropdown
@(Html.Kendo().DropDownListFor(model => model.MyObject.ID)
.Name(Objects).DataTextField(Value).DataValueField(Key)
.BindTo(@Model.MyObjectList).AutoBind(true)
.HtmlAttributes(new { id = selectedObject })
<a class=button onclick=searchGrid() id=search>Search</a>
@(Html.Kendo().Grid<MyViewModel>()
.Name(MyGrid).HtmlAttributes(new { style = overflow-x:scroll; })
.Columns(columns =>
{
columns.Bound(a => a.MyObject.Name).Title(Field 1);
columns.Bound(a => a.Column2).Title(Field 2);
}
.Pageable(page => page.PageSizes(true))
.Scrollable(src => src.Height(auto))
.Sortable()
.Filterable()
.Reorderable(reorder => reorder.Columns(true))
.ColumnMenu()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Read(read => read.Action(GetList_Read, MyController))
)
)
<script>
function searchGrid()
{
selectedObject = $(#selectedObject).data(kendoDropDownList);
gridFilter = = { filters: [] };
if ($.trim(selectedRecipient).length > 0) {
gridListFilter.filters.push({ field: Field 1, operator: eq, value: selectedObject});
}
}
var grid = $(#MyGrid).data(kendoGrid);
grid.dataSource.filter(gridFilter);
</script>
My View model looks like
public class MyViewModel
{
public MyObject myObj {get;set;}
public string Column2 {get;set;}
}
The above function work when the search field is a textbox but it doesnt work when I am using a dropdown. I think it is because I am pushing the id of 'MyObject' into the grid filter while the grid is populated with the name of 'MyObject'. Can anyone show me how I can fix this. Thank you!!