如何用新数据刷新剑道网格
How to refresh kendo grid with new data
在我加载一个剑道网格后,我想用一个按钮点击刷新/重新加载新的数据网格。
控制器:
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);
})
我应该如何在按钮中分配网格来完成这一点?
在描述的场景中有两个主要任务需要处理:
-
dataSource.data
应该指向一个数组,而不是一个对象 - 如果新数据将具有完全不同的字段,您还需要替换Grid列
设置新数据源和新列的一种可能的方法是通过setOptions
。
下面是一个例子:
http://dojo.telerik.com/oWahO如果在重新加载数据后列保持不变,则可以使用以下方法:
$("#btnclick").click(function () {
var grid = $("#FollowUpGrid").data("tGrid");
var params = {
name: "Agency",
id: "63190"
};
grid.dataSource.read(params);
})
将name
和id
参数传递给action方法,并保留现有的DataSource实例及其设置。
http://docs.telerik.com/kendo-ui/api/javascript/data/datasource methods-read
相关文章:
- 如何刷新AngularJs剑道网格
- 在不刷新整个网格的情况下,向Asp.net网格视图添加新行
- Kendo UI网格:数据源刷新后,我丢失了分页
- ExtJS网格在存储更新后未刷新
- 记住在剑道UI中刷新时展开的细节网格
- 在网格视图的自动刷新过程中,设置内部网格视图文本框的可见性
- Angular中的UI网格刷新
- 插入数据并用新数据刷新数据网格后,关闭弹出窗口
- 光滑网格不刷新与Ajax调用
- 网格存储不会在 ExtJS 5 中刷新
- 如何调用 MVC Telerik 网格刷新按钮的点击事件
- 具有剑道网格刷新的回调函数
- ExtJS 6 网格无法正确更新/刷新列标题
- 我需要jqgrid来刷新整个页面,而不仅仅是网格
- 剑道UI MVVM网格刷新/重新加载
- 在CRM 2015更新1中,网格刷新后如何从网格中检索网格行
- 剑道UI网格刷新下拉选择
- Kendo网格细节导致父网格刷新
- 为什么是Dojo网格.刷新正在进行另一个服务器调用
- Dojo网格刷新和滚动位置