In KendoUI, I have a grid with filters on. I am more interested in knowing all the filters used by user for saving purpose so that next time user comes in, they can be auto-fill. How do I get all the filters used?
问问题
18447 次
3 回答
18
不确定您的代码看起来如何,但您应该能够获取 Grid 的数据源对象并调用方法 filter() 以获取当前应用的数据源过滤器。看看下面的例子:
<script>
var dataSource = new kendo.data.DataSource({
data: [
{ name: "Jane Doe" },
{ name: "John Doe" }
],
filter: { field: "name", operator: "startswith", value: "Jane" }
});
var filter = dataSource.filter();
console.log(filter.logic); // displays "and"
console.log(filter.filters[0]); // displays '{field: "name", operator: "startswith", value: "Jane"}'
</script>
于 2013-10-18T17:30:55.687 回答
5
只是添加到上面的答案 - 如果你想纯粹在前端而不是针对实际数据源 - 你可以使用以下......
var myGrid = $("#gridname").data("kendoGrid");
myGrid.dataSource.filter().filters[0];
您可以将其分解为不同的参数...
myGrid.dataSource.filter().filters[0].field
myGrid.dataSource.filter().filters[0].operator
myGrid.dataSource.filter().filters[0].value
希望这会有所帮助 - 干杯
于 2015-04-24T04:49:42.807 回答
2
我的配置是 MVC,在服务器端获取数据。我的意思是网格调用这个方法来获取它的数据:
public ActionResult Documents_Read([DataSourceRequest] DataSourceRequest request,
int documentType = (int)ApiGlobals.TrxTypes.חשבונית)
我所做的很简单:我在 Session 变量中捕获请求对象,然后在需要时使用会话变量。在以下示例中,我使用过滤器仅打印在网格中过滤的文档:
public ActionResult Documents_Read([DataSourceRequest] DataSourceRequest request,
int documentType = (int)ApiGlobals.TrxTypes.חשבונית)
{
Session["DocumentListFilter"] = request;
...
}
public ActionResult PrintListKendo(int documentType)
{
DataSourceRequest request = (DataSourceRequest)Session["DocumentListFilter"];
if (request == null)
{
request = new DataSourceRequest();
}
request.Page = 1;
request.PageSize = int.MaxValue;
IQueryable<Document> data = _db.GetDocuments()
.Where(d => d.TrxTypeId == (int)documentType);
DataSourceResult filteredData = data.ToDataSourceResult<Document, DocumentListSingleDocumentViewModel>(request,
d => ViewModelFactory.Create(d));
//... call the reporting package with the data, etc.
}
您可以将请求对象(=对其进行序列化,或将其保存属性)保存到数据库中,并在用户打开相关页面并且网格获取其数据时重新加载它,
于 2014-02-13T22:10:36.850 回答