【问题标题】:How to clear Kendo grid rows without invoking databound method?如何在不调用数据绑定方法的情况下清除剑道网格行?
【发布时间】:2016-04-14 01:57:07
【问题描述】:

我有一个带有数据绑定方法的网格,它显示消息“未找到用于搜索的数据”,以防在执行搜索后没有检索到数据。现在我添加了一个单选按钮,单击该按钮需要从网格中清除旧数据。问题是我使用的是代码$(grid).data("kendoGrid").dataSource.data([]);,它确实清除了网格,但它也显示“未找到搜索数据”消息。由于用户没有执行任何搜索,只是更改了单选按钮,因此在网格中显示该消息似乎不正确。所以,我想知道是否有一种方法可以在不调用数据绑定方法的情况下清除网格。

调用数据绑定函数的网格代码:

@(Html.Kendo().Grid<SearchModel>()
             .Events(events => events.DataBound("gridDataBound"))

数据绑定代码:

function gridDataBound(e) {
    var grid = e.sender;
    var gridName = "#" + grid.table.context.id;

    if (grid.dataSource.total() == 0) {
            var colCount = grid.columns.length;
            $(e.sender.wrapper)
                .find('tbody')
                .append('<tr class="kendo-data-row"><td colspan="' + colCount + '" class="no-data">No Records Meet Your Search Criteria.</td></tr>');
        }
        $(gridName).find(".k-pager-wrap").hide();
};

谢谢。

【问题讨论】:

  • 尝试将 autoBind 设置为 false?
  • @whipdancer 我做不到。

标签: asp.net-mvc-4 kendo-ui kendo-grid kendo-asp.net-mvc


【解决方案1】:

据我所知,如果不将e.preventDefault() 放入dataBound 函数中,就无法做到这一点。你可以做的也许是你的 dataBound 函数用来检查它是否应该显示消息的布尔值?

【讨论】:

  • 传递布尔值是什么意思?
  • 当用户更改单选按钮时,您将拥有一个更改布尔值的函数,我们将其称为 showMessage 为 false。在您的 dataBound 函数中,将所有内容包装在 if (showMessage) 中,并在 dataBound 的末尾将其设置回 true
猜你喜欢
  • 1970-01-01
  • 2018-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多