2016-11-14 12 views
1

これは私のメイングリッドです。私はデータベースに行き、すべてのデータを取得します。私は同じデータ型を使用する別のグリッドを配置したい。そして、このグリッドは、指定したフィルタを持つ同じデータソースを使用します。私は再びデータベースに行きたくはありません。 たとえば GRID1:ショーOrderAmount> 100剣道グリッド共有データソース

(Html.Kendo().Grid<CustomerOrder>() 
.Name("Orders") 
.Events(events => events.DataBound("onDataBound")) 
.DataSource(dataSource => dataSource 
    .Ajax() 
    .ServerOperation(false) 
    .Read(read => read.Action("OrderListAjax", controller)) 
    .PageSize(Constants.PageSize) 
.Columns(columns => 
          {         
           columns.Bound(p => p.CustomerNumber).Title("CustomerNumber"); 
           columns.Bound(p => p.CustomerName).Title("CustomerName"); 
           columns.Bound(p => p.OrderAmount).Title("OrderAmount"); 
          })   
    ) 
+0

model-view-controllerタグはパターンについての質問です。 ASP.NET-MVCの実装には特定のタグがあります。 –

答えて

1

私は以下の異なる方法を試してみましたが、それも動作します。

// Take the data source from main grid 
    var mainSource = $("#Orders").data("kendoGrid").dataSource.data().toJSON(); 

    // Prepare your query on main grid source 
    var orderAmountQuery = kendo.data.Query.process(mainSource, { 
     filter: { 
      logic: "and", 
      filters: [    
      { 
       field: "OrderAmount", 
       value: parseInt("100"), 
       operator: "gt" // greater than 
      } 
      ] 
     } 
    }); 

    // Create a new datasource for set filtered datasource 
    var orderAmountQueryDataSource = new kendo.data.DataSource({ 
     pageSize: 15, 
    }); 
    orderAmountQueryDataSource.data(orderAmountQuery.data); 


    // set grid2's data source with filtered dataSource 
    var grid2 = $("#Grid2").data("kendoGrid"); 
    grid2.setDataSource(orderAmountQueryDataSource); 
0

あなたの主な答えはここにある:

is it possible to copy a grid datasource to a new datasource, a new datasource that loads all data?

しかし、あなたにもフィルタリングを行う必要があり、あなたのケースのための Grid2すべてのデータを表示

CSHTMLで2番目のグリッドを追加します。

<div id="MySecondGrid"></div> 

は、次のJavaScriptを使用します。

// Get the first datasource 
var ds1 = $("#Orders").data("kendoGrid").dataSource; 

// Filter the second datasource 
var ds2 = $.grep(ds1._data, function (item) { return item.OrderAmount > 100; }); 
ds2.serverPaging = false; 

// Set the second datasource 
$("#MySecondGrid").kendoGrid({ 
    dataSource: ds2 
}); 
+0

答えの最初の部分については質問にコメントしたいと思っていましたが、まだ質問にコメントするほどの評判はありません。 –

関連する問題