【问题标题】:Reload Kendo Grid, not just the data in it重新加载 Kendo Grid,而不仅仅是其中的数据
【发布时间】:2014-09-23 04:06:08
【问题描述】:

我有一个剑道网格:单击按钮后如何重新加载整个网格?这是按钮:

<input type="button" id="btnReload" name="reload" value="Reload" />

下面是处理按钮点击的函数:

$('#btnReload').click(function (e) {
    var grid = $("#datagrid_Roads").data("kendoGrid");
    //grid.reload();
    grid.dataSource.page(1);
    grid.dataSource.read();
});

好的,以上刷新了网格中的数据。我想要的是类似于注释代码(在上面的块中),因此重新加载整个网格,而不仅仅是其中的数据。

我该怎么做?

编辑

我想要这个的原因是因为我想为我的网格制作一个自定义过滤器,因为网格的内置过滤器功能在 Internet Explorer 中不适合我,正如我在 this question I asked before 中看到的那样仍未找到解决方案。自定义过滤器是一个DropDownList,具有不同的过滤值。 (就我而言,列出的道路所属的特许权)

以下是网格规格:

<div id="datagrid">
    @(Html.Kendo().Grid<SustIMS.Models.RoadModel>()
        .Name("datagrid_Roads")
        .Columns(columns =>
        {
            columns.Bound(r => r.RoadCode).Title(ViewBag.lblCode).Width(140);
            columns.Bound(r => r.RoadType).Title(ViewBag.RoadType).Width(140);
            ...
            columns.Bound(r => r.ConcessionMediumDescription).Title(ViewBag.Concession);
        })
        .HtmlAttributes(new { style = "height: 534px;" })
        ...
        .DataSource(dataSource => dataSource
            .Ajax()
            .Filter(filters =>
            {
                filters.Add(road => road.ConcessionMediumDescription).Contains(Session["concessionFilter"].ToString());
            })
            .PageSize(15)
            .Read(read => read.Action("GetRoads", "MasterData"))
        )
    )
</div>

如您所见,我设置了一个作为会话变量的过滤器,默认设置为DropDownList 的第一项。

当用户更改 DropDownList 选择时,将调用控制器方法并使用过滤器值设置会话变量。但是,网格不显示任何过滤的数据,因为它之前是使用会话变量的先前值加载的。我希望使用会话变量的新值重新加载它,以便过滤器实际工作。

有人吗?

【问题讨论】:

  • 谢谢@MohitArora,我已经看到了,但它不起作用。它刷新网格中的数据,但不刷新网格本身。我希望网格被完全擦除和重建。我将在问题中添加更多细节,解释我为什么要这样做。

标签: javascript jquery kendo-ui kendo-grid


【解决方案1】:

这样试试,

 $('#btnReload').click(function (e) {
  var grid = $("#datagrid_Roads").data("kendoGrid");         
  grid.dataSource.filter({});
  grid.dataSource.read();
  grid.refresh();
});

【讨论】:

  • @chiapa 你从服务器端过滤你的数据?
  • 不确定,但我认为是服务器端
  • @chiapa 这是您的要求,或者您不知道客户端自定义过滤。
  • 不,它可以是任何过滤类型,客户端或服务器端,我不在乎。
  • @chiapa 我不了解服务器端过滤器,但在客户端过滤器中它工作得非常好。
猜你喜欢
  • 1970-01-01
  • 2023-03-19
  • 2011-06-24
  • 2015-09-09
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多