gpt4 book ai didi

c# - 带有手动绑定(bind)的 Telerik MVC Grid Ajax

转载 作者:太空狗 更新时间:2023-10-30 01:07:38 25 4
gpt4 key购买 nike

我有一个使用 ajax 获取数据的 Telerik MVC 网格,我想控制何时加载它。

这是我认为的代码:

@(Html.Telerik().Grid<ViewModels.Reports.UserActionLoggingDetailViewModel>()
.Name("UserActionLoggingFollowedGrid")
.DataBinding(dataBinding => dataBinding.Ajax().Select("SelectUserActionLogging", "Report", new { userTeamId = Model.UserTeamId, startDate = Model.StartDate, endDate = Model.EndDate }).OperationMode(GridOperationMode.Client))
.Columns(columns =>
{
columns.Bound(x => x.FullName).Hidden();
columns.Bound(x => x.ActionName);
columns.Bound(x => x.ActionCount);
})
.Pageable(page => page.PageSize(20))
.Sortable()
.Groupable(grouping => grouping.Groups(groups => groups.Add(c => c.FullName)).Visible(false))
.Filterable()
.Localizable("fr-FR")
.HtmlAttributes(new { @class = "grid-style static-grid-style" })
.ClientEvents(e => e.OnError("Grid_onServerError").OnDataBinding("Grid_onDataBinding").OnDataBound("Grid_onDataBound"))
)

默认情况下,此代码可以正常工作。加载页面时,网格会自动向服务器发送指定操作的 post 请求,并使用返回的数据自行加载。

我想要的是具有相同行为但在页面加载时不加载数据的相同网格;我希望在用户单击按钮或任何其他操作时加载网格。

我发现了一些有趣的帖子,指出如何手动刷新网格,但没有人具体说明如何防止网格的初始绑定(bind)。

最佳答案

这个小片段对我有用。添加一个数据绑定(bind)客户端事件(显然你已经有了):

.ClientEvents(events => events
.OnDataBinding("preventAjaxSelectOnPageLoad"))

然后创建添加这个javascript:

<script type="text/javascript">

var gridsToBind = [];

function preventAjaxSelectOnPageLoad(e)
{
if ($.inArray(e.target.id, gridsToBind) == -1)
{
e.preventDefault();
gridsToBind.push(e.target.id);
}
}
</script>

基本上,您创建一个数组来跟踪需要绑定(bind)的网格。当页面加载时,数组将为空——此时,它取消数据绑定(bind)事件并将网格添加到数组。那么下次调用ajaxRequest()时,网格就存在于数组中,可以正常绑定(bind)了。

关于c# - 带有手动绑定(bind)的 Telerik MVC Grid Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11680081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com