2016-10-14 12 views
0

剣道グリッドを読み込んだ後、ボタンのクリックで新しいデータでグリッドを更新/再読み込みしたいと思います。新しいデータで剣道グリッドを更新するには

コントローラー:

using Kendo.Mvc; 
    using Kendo.Mvc.Extensions; 
    using Kendo.Mvc.Infrastructure; 
    using Kendo.Mvc.UI; 

    public ActionResult FollowUpGrid_Read([DataSourceRequest]DataSourceRequest request, string name, string id) 
{ 
List<vmFollowUpGrid> FUPList = new List<vmFollowUpGrid>(); 
FUPList = (from u in db.usrUserBldgLists 
       join e in db.entEntities on u.EntID equals e.EntID 
       join d in db.entDistricts on e.FANo equals d.DistNo 
       join ed in db.entDistricts on e.OANo equals ed.DistNo 
       join b in db.entBuildings on e.OBNo equals b.BuildNo 
       where u.UserID == "A1036719" && u.FANO == id 
       select new vmFollowUpGrid { FANo = u.FANO, FAName = d.DistrictName, OANo = u.OANO, District = ed.DistrictName, OBNo = u.OBNo, Building = b.BuildName}).Take(50).ToList(); 
var FUList = FUPList.ToDataSourceResult(request); 
return Json(FUList, JsonRequestBehavior.AllowGet);       
} 

CSHTMLページ:次に

 @(Html.Kendo().Grid<MDEFollowUp.Models.vmFollowUpGrid>() 
.Name("FollowUpGrid") 
.Columns(columns => 
{ 
    columns.Bound(p => p.FANo); 
    columns.Bound(p => p.FAName); 
    columns.Bound(p => p.OANo); 
    columns.Bound(p => p.District); 
    columns.Bound(p => p.OBNo); 
    columns.Bound(p => p.Building); 
}) 
    .Pageable(pageable => pageable 
      .Refresh(true) 
      .PageSizes(true) 
      .ButtonCount(5)) 
    .Sortable() 
    .Scrollable() 
    .Filterable() 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .PageSize(20) 
       .Read(read => read.Action("FollowUpGrid_Read", "FollowUp").Data("additionalAgencyInfo"))) 
     ) 

ボタンクリックイベント新しいデータでグリッドをリフレッシュするが、これは、グリッドの割り当てを認識していないようです。

  $("#btnclick").click(function() { 

     var grid = $("#FollowUpGrid").data("tGrid"); 
     var params = { 
      name: "Agency", 
      id: "63190" 
     }; 
     var dataSource = new kendo.data.DataSource({ data: params }); 
     //grid.rebind(params); 
     grid.setDataSource(dataSource); 
    }) 

これを行うには、ボタンにグリッドをどのように割り当てる必要がありますか?

答えて

1

説明したシナリオに対処するには、2つの主要なタスクがあります。

  1. dataSource.dataが配列ではなく、オブジェクト
  2. 新しいデータが完全に異なるフィールドを特色にする場合を指している必要がありますが、あなたもする必要があります。グリッドの列を置き換えます。

新しいデータソースと新しい列を設定する方法は、setOptionsです。ここで

は一例です:

$("#btnclick").click(function() { 
    var grid = $("#FollowUpGrid").data("tGrid"); 
    var params = { 
     name: "Agency", 
     id: "63190" 
    }; 
    grid.dataSource.read(params); 
}) 

http://dojo.telerik.com/oWahO

UPDATE

データがリロードされた後、列は同じままになります場合は、次のアプローチを使用することができます

これはnameとを渡します。パラメータをアクションメソッドに追加し、既存のDataSourceインスタンスとその設定を保持します。私がやろうとした何

http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#methods-read

+0

新しいパラメータに基づいて、グリッド列を変更するが、データを変更することはありません。上の例で指摘したように、ボタンをクリックしたときにidパラメータを新しいパラメータとして渡すようにしたいと思います。 6319のIDに基づいて新しいデータでグリッドをリフレッシュするイベントにどのように渡されますか? –

+0

更新された返信を見る – dimodi

関連する問題