更新TelerikKendoGrid(MVC)后刷新我有一个带有一些环境数据的KendoGrid。网格的一个字段是“isDefault”,它接收1或0(表示真或假)。在数据库中,我有一个触发器,当某个记录设置为isDefault=1时,任何其他记录都会更新为isDefault=0,只是为了确保只有一个默认环境。Kendogrid工作正常,它绑定数据和更新记录就好了,但是更新后,grid不会刷新所有记录,如果有记录1,isDefault=1,我将记录4更新为isDefault=1triggers触发器是触发并将所有其他记录更新为isDefault=0但网格仍然显示isDefault=1的记录1和现在isDefault=1的记录4这是我认为的代码:Html.Kendo().Grid()。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).宽度(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)]publicActionResultUpdateEnvironments([DataSourceRequest]DataSourceRequestdsRequest,Environmentenvironment){environment.ModifiedBy=userName;if(environment!=null&&ModelState.IsValid){if(environment.EnvironmentID!=0){vartoUpdate=xgr.EnviromentRepository.ListAll().FirstOrDefault(p=>p.EnvironmentID==environment.EnvironmentID);TryUpdateModel(toUpdate);}xgr.EnviromentRepository.Save(environment);}returnJson(ModelState.ToDataSourceResult());}预先感谢您的回答,我终于让它工作了。添加了事件处理程序:Html.Kendo().Grid().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(真);cols.Bound(c=>c.Template).Width(150).Sortable(真);cols.Bound(c=>c.isDefault).Width(150).Sortable(真);cols。绑定(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");//我添加了这个}).Read(r=>r.Action("GetEnvironments","Admin")).Update(update=>update.Action("UpdateEnvironments","Admin")).Create(update=>update.Action("UpdateEnvironments","Admin")))和一个Javascript函数:functiononRequestEnd(e){if(e.type=="update"){$("#environmentGrid").data("kendoGrid").dataSource.read();我还需要修改EnvironmentRepository上的ListAll()方法,如下所示:publicListListAll(){_dataContext=newXMLGenEntitiesDataContext();//我必须添加这一行。所以每次我调用ListAll方法时都会实例化上下文。返回_dataContext.XML_Environments.OrderBy(c=>c.EnvironmentName).ToList();你返回了错误的对象我真的不知道你是如何得到你的数据的,因为你没有发布GET控制器,所以我会试着猜测它。更新数据后,需要将它们发送回网格。ModelState不包含您想要的数据。试试这个:[AcceptVerbs(HttpVerbs.Post)]publicActionResultUpdateEnvironments([DataSourceRequest]DataSourceRequestdsRequest,Environmentenvironment){environment.ModifiedBy=userName;varupdatedRecords=null;//1if(environment!=nullValState.I&&idModel){if(environment.EnvironmentID!=0){vartoUpdate=xgr.EnviromentRepository.ListAll().FirstOrDefault(p=>p.EnvironmentID==环境.EnvironmentID);尝试更新模型(更新);updatedRecords=xgr.EnviromentRepository.ListAll();//2--你可能需要添加“ToList()”,这取决于你的实现}xgr.EnviromentRepository.Save(environment);}returnJson(updatedRecords.ToDataSourceResult(request,ModelState));//3}请参阅此链接以获取完整示例。以上为C#学习教程:更新完TelerikKendoGrid(MVC),刷新分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
