我有一個kendo網格,通過將下拉列表中的值推送到內置的kendo過濾器中進行過濾。當我在文本框和搜索中輸入值時,我可以使用相同的方法搜索網格。這是我的劍道網格和下拉如何使用下拉列表過濾Kendo UI MVC網格
@(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>
我的視圖模型看起來像
public class MyViewModel
{
public MyObject myObj {get;set;}
public string Column2 {get;set;}
}
上述功能工作時,搜索字段是一個文本框,但它時,我使用的是下拉不工作。我認爲這是因爲我將「MyObject」的id推入網格過濾器,而網格填充了「MyObject」的名稱。任何人都可以告訴我如何解決這個問題。謝謝!!
感謝您的幫助下降的值。儘管我無法使用提供的答案來解決問題,但這仍然是一個問題。 – Sophonias