C# Telerik MVC网格Ajax删除操作
我有一个网格,我希望能够删除行,而不必从控制器操作返回新的结果集 在我看来:C# Telerik MVC网格Ajax删除操作,c#,asp.net-mvc,telerik-grid,C#,Asp.net Mvc,Telerik Grid,我有一个网格,我希望能够删除行,而不必从控制器操作返回新的结果集 在我看来: @(Html.Telerik().Grid<InterestTopicViewModel>() .Name("Grid") .DataKeys(keys => keys.Add(x => x.Id)) .ToolBar(commands => commands.Insert().ButtonType(GridButtonType.
@(Html.Telerik().Grid<InterestTopicViewModel>()
.Name("Grid")
.DataKeys(keys => keys.Add(x => x.Id))
.ToolBar(commands => commands.Insert().ButtonType(GridButtonType.Image).ImageHtmlAttributes(new {style="margin-left:0"}))
.DataBinding(dataBinding => dataBinding.Ajax()
.Select("Select", "InterestTopic")
.Insert("Insert", "InterestTopic")
.Update("Update", "InterestTopic")
.Delete("Delete", "InterestTopic"))
.Columns(columns =>
{
columns.Bound(x => x.Name);
columns.Command(commands =>
{
commands.Edit().ButtonType(GridButtonType.Image);
commands.Delete().ButtonType(GridButtonType.Image);
}).Title("Actions");
})
.Editable(editing => editing.Mode(GridEditMode.InLine))
)
[AcceptVerbs(HttpVerbs.Post)]
[GridAction]
public ActionResult Delete(int id)
{
InterestTopicViewModel interestTopicViewModel = this.InterestTopicPresenter.GetInterestTopic(id);
if (this.InterestTopicPresenter.DeleteInterestTopic(id))
base.LogUserAction(UserActionLoggingType.DeleteInterest, interestTopicViewModel.Name);
return this.View(new GridModel(this.InterestTopicPresenter.GetList()));
}
如您所见,在我的控制器中,我必须在函数末尾返回GridModel对象中的整个列表。如果我不这样做,视图将不会刷新
是否可以在控制器的帮助下删除记录,让Telerik在javascript中删除相应行的div
谢谢。如果您不怕javascript和jQuery,那么这并不难。我通常不使用grid命令列和绑定,而是用一个模板(使用Razor语法)将其连接起来: 然后创建一个javascript函数来发布到delete函数
function delete(sender, id)
{
$.ajax({
type: "POST", // important, only perform deletes on a post
url: '/delete',
data: { id: id },
success: function (result)
{
if (result.resultCode == "success")
{
var row = $(sender).closest("tr");
row.remove();
}
}
});
}
差不多吧。我不知道确切的语法,但希望这足以让您开始学习。如果您不害怕javascript和jQuery,这并不难。我通常不使用grid命令列和绑定,而是用一个模板(使用Razor语法)将其连接起来: 然后创建一个javascript函数来发布到delete函数
function delete(sender, id)
{
$.ajax({
type: "POST", // important, only perform deletes on a post
url: '/delete',
data: { id: id },
success: function (result)
{
if (result.resultCode == "success")
{
var row = $(sender).closest("tr");
row.remove();
}
}
});
}
差不多吧。我不知道确切的语法,但希望这足以让您开始学习。这是一个非常好的解决方案。只有一个问题,;我的项目中有很多网格,如果我需要实现这样的解决方案,我会为这个特性编写很多代码。在关键的地方,我肯定会这样做,但对于其他地方,我更希望有一个已经在Telerik框架中实现的解决方案是可能的。这是一个非常好的解决方案。只有一个问题,;我的项目中有很多网格,如果我需要实现这样的解决方案,我会为这个特性编写很多代码。在关键的地方,我肯定会这样做,但对于其他地方,我更希望有一个已经在Telerik框架中实现的解决方案是可能的。
function delete(sender, id)
{
$.ajax({
type: "POST", // important, only perform deletes on a post
url: '/delete',
data: { id: id },
success: function (result)
{
if (result.resultCode == "success")
{
var row = $(sender).closest("tr");
row.remove();
}
}
});
}