【发布时间】:2017-02-11 02:30:34
【问题描述】:
当我加载页面时,它是一个部分页面,网格中填充了数据
但是一旦我像这样调用刷新方法
<button onclick="doRefresh">refresh</button>
<script type="text/javascript">
var doRefresh = function () {
var kendogrid = $("#this_Id").data("kendoGrid");
kendogrid.refresh();
}
</script>
它应该刷新网格并使用当前绑定到网格的数据源重建它。但是网格变空了
我认为我绑定模型错误,因为一旦我刷新网格,我就会丢失所有数据。我已经尝试绑定模型并使用 bindto 方法作为mentioned here。
这是我的看法:
@model List<bModel>
@(Html.Kendo().Grid(Model)
.Name("this_Id") // template expression, to be evaluated in the master context
.Columns(columns =>
{
columns.Bound(m => m.Sequence).Title("Seq.");
columns.Bound(m => m.JobType).Title("Job Type");
columns.Bound(m => m.Service).Title("Service");
columns.Bound(m => m.Status).Title("Status");
columns.Bound(m => m.PropertyType).Title("Property Type");
columns.Bound(m => m.PropertySubType).Title("Property SubType");
columns.Bound(m => m.Address).Title("Address");
})
.Sortable()
.Selectable(s => s.Mode(GridSelectionMode.Multiple).Type(GridSelectionType.Row))
.ClientDetailTemplateId("taskTemplate")
.DetailTemplate(
.......
)
.DataSource(dataSource => dataSource
.Server()
.Model(model => model.Id(jobItem => jobItem.Id))
)
.Read(read => read.Action("GetJobForBulkUpdate", "Project", new { jobId = "#=Id#" }))
.Events(events => events.DetailExpand("detailExpand"))
)
我正在像这样调用面板栏中的视图
@(Html.Kendo().PanelBar()
.Name("panel-bar")
.ExpandMode(PanelBarExpandMode.Multiple)
.ExpandAll(true)
.Items(panel =>
{
panel.Add()
.Text("<span id='batch-update-panel-bar-job'>JOB-TASK</span>")
.Encoded(false)
.Content("<div id='update-model'>" + Html.Action("BatchUpdateJob", "BatchUpdate", new { projectId = Model.Id}).ToHtmlString() + "</div>");
})
)
而控制器方法是这样的
public ActionResult BatchUpdateJob(int projectId)
{
mymodel = something;
return PartialView("_MymodelPageJob", mymodel);
}
public ActionResult GetJobForBulkUpdate(int projectId, [DataSourceRequest] DataSourceRequest request)
{
List<OfData> jobData = getData();
return Json(jobData.ToDataSourceResult(request));
}
【问题讨论】:
-
@SeanCh 抱歉周末很忙。
标签: c# asp.net asp.net-mvc telerik