c# – 更新Telerik Kendo Grid(MVC)后刷新
发布时间:2020-12-16 00:11:15 所属栏目:百科 来源:网络整理
导读:我有一个带有一些环境数据的Kendo Grid.网格的一个字段是“isDefault”,它接收1或0(对于真或假).在数据库中,我有一个触发器,当某个记录设置为isDefault = 1时,任何其他记录都更新为isDefault = 0,只是为了确保只有一个默认环境. Kendo网格工作正常,它绑定数
我有一个带有一些环境数据的Kendo Grid.网格的一个字段是“isDefault”,它接收1或0(对于真或假).在数据库中,我有一个触发器,当某个记录设置为isDefault = 1时,任何其他记录都更新为isDefault = 0,只是为了确保只有一个默认环境.
Kendo网格工作正常,它绑定数据并更新记录就好了但是在更新之后,网格没有刷新所有记录,如果有,比方说,记录1,isDefault = 1,我更新记录4到isDefault = 1触发器被触发并将所有其他记录更新为isDefault = 0但网格仍然显示记录1,现在记录4,isDefault = 1 这是我视图中的代码: Html.Kendo().Grid<Models.Environment>() .Name("environmentGrid") .Sortable() .ToolBar(tb => tb.Create()) .Editable(editable => editable.Mode(GridEditMode.PopUp)) .Columns(cols => { cols.Bound(c => c.Name).Width(150).Sortable(true); cols.Bound(c => c.ConnectionString).Width(150).Sortable(true); cols.Bound(c => c.Template).Width(150).Sortable(true); cols.Bound(c => c.isDefault).Width(150).Sortable(true); cols.Bound(c => c.StatusID).Width(150).Sortable(true); cols.Command(command => { command.Edit();}).Width(60); }) .DataSource(ds => ds .Ajax() .Model(model => { model.Id(m => m.EnvironmentID); }) .Read(r => r.Action("GetEnvironments","Admin")) .Update(update => update.Action("UpdateEnvironments","Admin")) .Create(update => update.Action("UpdateEnvironments","Admin")) ) 这是我的控制器上的代码: [AcceptVerbs(HttpVerbs.Post)] public ActionResult UpdateEnvironments([DataSourceRequest] DataSourceRequest dsRequest,Environment environment) { environment.ModifiedBy = userName; if (environment != null && ModelState.IsValid) { if (environment.EnvironmentID != 0) { var toUpdate = xgr.EnviromentRepository.ListAll().FirstOrDefault(p => p.EnvironmentID == environment.EnvironmentID); TryUpdateModel(toUpdate); } xgr.EnviromentRepository.Save(environment); } return Json(ModelState.ToDataSourceResult()); } 提前感谢您的回答. 解决方法
我终于开始工作了.添加了事件处理程序:
Html.Kendo().Grid<Models.Environment>() .Name("environmentGrid") .Sortable() .ToolBar(tb => tb.Create()) .Editable(editable => editable.Mode(GridEditMode.PopUp)) .Columns(cols => { cols.Bound(c => c.Name).Width(150).Sortable(true); cols.Bound(c => c.ConnectionString).Width(150).Sortable(true); cols.Bound(c => c.Template).Width(150).Sortable(true); cols.Bound(c => c.isDefault).Width(150).Sortable(true); cols.Bound(c => c.StatusID).Width(150).Sortable(true); cols.Command(command => { command.Edit();}).Width(60); }) .DataSource(ds => ds .Ajax() .Model(model => { model.Id(m => m.EnvironmentID); }) .Events(events => { events.RequestEnd("onRequestEnd"); //I've added this }) .Read(r => r.Action("GetEnvironments","Admin")) .Update(update => update.Action("UpdateEnvironments","Admin")) .Create(update => update.Action("UpdateEnvironments","Admin")) ) 和一个Javascript函数: function onRequestEnd(e) { if (e.type == "update") { $("#environmentGrid").data("kendoGrid").dataSource.read(); } } 另外,我需要修改EnvironmentRepository上的ListAll()方法,如下所示: public List<XML_Environment> ListAll() { _dataContext = new XMLGenEntitiesDataContext(); //I've to add this line. so the context is instantiated every time I call the ListAll Method. return _dataContext.XML_Environments.OrderBy<XML_Environment,string>(c => c.EnvironmentName).ToList<XML_Environment>(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |