Asp.net mvc 3 插入项目后,如何重新绑定Telerik MVC网格
我的Telerik MVC 3网格是通过Ajax填充的。插入一行后,我需要重新绑定网格。当我在OnSave()事件上执行重新绑定时,数据重新绑定仍在控制器操作上发送。我需要一些类似于未插入事件的东西Asp.net mvc 3 插入项目后,如何重新绑定Telerik MVC网格,asp.net-mvc-3,telerik,telerik-grid,Asp.net Mvc 3,Telerik,Telerik Grid,我的Telerik MVC 3网格是通过Ajax填充的。插入一行后,我需要重新绑定网格。当我在OnSave()事件上执行重新绑定时,数据重新绑定仍在控制器操作上发送。我需要一些类似于未插入事件的东西 有什么想法吗?执行插入代码后,您可以通过从控制器返回一个网格模型来重新绑定网格: [AcceptVerbs(HttpVerbs.Post)] [GridAction] public ActionResult _ItemInsert(int id, MyObject obj) { //Rebi
有什么想法吗?执行插入代码后,您可以通过从控制器返回一个网格模型来重新绑定网格:
[AcceptVerbs(HttpVerbs.Post)]
[GridAction]
public ActionResult _ItemInsert(int id, MyObject obj)
{
//Rebind the grid by sending the GridModel back
return View(new GridModel(myData)); // where myData is your grid data
}
别忘了用[GridAction]
装饰控制器
这假设您的网格具有如下ajax数据绑定声明:
dataBinding.Ajax()
.Insert("_ItemInsert", "Item" })
这取决于您添加行的方式。如果在网格中进行编辑,网格应自动更新。如果要从表单添加记录,可以使用客户端rebind()方法刷新网格数据
使用以下标准,
@(Html.Telerik().Grid<PackageDetails>()
.Name("gvPackage")
.DataKeys(keys => keys.Add(k => k.PKG_CODE))
.Columns(column =>
{
column.Bound(c => c.PKG_NAME).Title("Description").Width(200);
column.Bound(c => c.MESG_UNIT).Title("Measuring Unit").Width(100);
column.Bound(c => c.STD_QNT).Title("Quantity").Width(100);
column.Bound(c => c.MODEL).Title("Model").Width(100);
column.Bound(c => c.COMP_CODE).ClientTemplate("<input type='text' id='txtSerial<#=COMP_CODE#>' value='<#=PKG_NAME#>' />").Title("Serial Number");
column.Bound(c => c.COMP_DESC).Title("Model").Width(100);
})
.DataBinding(dbBindings => dbBindings.Ajax().Select("_PackageDetailsLoad", "SalesDept"))
行动完成后,您可以呼叫:
jQuery(“gvPackage”).data(“t-grid”).ajaxRequest()我的模型绑定到下拉列表(
[GridAction]
public ActionResult _PackageDetailsLoad(string programID, string projectID, string packageID)
{
objLoginHelper = (LoginHelper)Session["LogInInformation"];
return View(new GridModel<PackageDetails>
{
Data = salesDal.ReadPackageDetails(programID, projectID, packageID)
});
}
$('#ddlProgram').change(function () {
LoadPackageAndBindGrid();
});
function LoadPackageAndBindGrid() {
var params = {
programID: $('#ddlProgram').val(),
projectID: $('#ddlProject').val(),
packageID: $('#ddlPackage').val()
};
var grid = $('#gvPackage').data('tGrid');
grid.dataSource._data = [];
// Reload The Package Details
grid.ajaxRequest(params);
}