KendoUI には、フィルターをオンにしたグリッドがあります。ユーザーが保存目的で使用するすべてのフィルターを知りたいので、次回ユーザーが来たときに自動入力できるようにします。すべてのフィルターを使用するにはどうすればよいですか?
質問する
18447 次
3 に答える
18
コードがどのように見えるかはわかりませんが、グリッドのデータソース オブジェクトを取得し、メソッド 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.חשבונית)
私がやっていることは単純です。セッション変数でリクエスト オブジェクトをキャプチャし、必要なときにいつでもセッション変数を使用します。次の例では、フィルターを使用して、グリッドでフィルター処理されたドキュメントのみを印刷します。
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 に答える