我在asp.net MVC应用程序的视图中有一个kendo网格。当我按下此kendo网格中的删除按钮(Destroy function)时,在控制器中调用一个函数来从数据库中删除该对象。在此期间,我想刷新此网格所在的局部视图,以刷新此视图中的标签。例如,是否可以在销毁按钮中添加另一个jq函数,还是有其他解决方案?
以下是视图代码:
<div id="Browsegrid">
@(Html.Kendo().Grid<WEB02.ConfigurationModel.TestGrid>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(o => o.Name).Width(110);
columns.Bound(o => o.Type).Width(130);
columns.Command(command => command.Destroy()).Width(110);
})
.Sortable()
.Scrollable(scrollable => scrollable.Virtual(true))
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => model.Id(p => p.Name))
.Events(events =>
{
events.RequestEnd("onRequestEnd");
})
.PageSize(100)
.Read(read => read.Action("TestGrid", "Configuration"))
.Destroy("TestDelete", "Configuration")
)
.Pageable(pageable => pageable
.Refresh(true))
)
</div>
脚本部分:它调用ajax请求,调用控制器中的方法来查看局部视图。
<script>
function onRequestEnd(e) {
$.ajax({
url: '/Configuration/_WorkflowPartial',
contentType: 'application/html charset=utf-8',
type: 'GET',
dataType: 'html',
data: { 'nodeName': NN, 'nodeType': NT, 'nodeID': NI, 'nodeURL': NU },
success: function (data) {
$('#body').html(data);
}
})
}
</script>
答案 0 :(得分:0)
不是问题中提到的这个事件,而是添加:
.Events(events => events.Error("error_handler").Sync("sync_handler"))
javascript函数:
function sync_handler(e) {
$.ajax({
url: '/Configuration/_WorkflowPartial',
contentType: 'application/html charset=utf-8',
type: 'GET',
dataType: 'html',
data: { 'nodeName': NN, 'nodeType': NT, 'nodeID': NI, 'nodeURL': NU },
success: function (data) {
$('#body').html(data);
}
})
}
这可以避免之前发生的无限循环,只在单击删除按钮时调用部分页面。传递的数据是先前传递给此部分页面的模型。