在jqgrid中,如何在页面或网格上不存在记录时进行处理

时间:2014-09-24 06:41:51

标签: jqgrid jqgrid-asp.net jqgrid-formatter mvcjqgrid

在jqgrid中,有6条记录(分页5)。 因此,第一页有5条记录,第二页现在有1条记录,用户删除了第6条记录(来自第2页)。 然后,网格仍然保留在页面#2上,并且第2页上没有行被删除。当第1页上的5条记录和第2页上没有记录时,它看起来不太好,页面选择出现在第2页。

请您指导如何解决这个问题。我认为,应该转移到前一页(最后一页)。

另外,相关问题: 当所有6条记录都被删除时。然后,网格仍然出现。 如果是这样,应该会出现一些标签消息,因为没有记录存在。 怎么做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用reccount选项在网格的当前页面上提供数字或记录。如果记录数为0,则可以执行其他操作。例如,您可以使用其他reloadGrid选项触发page(请参阅the answer

var $self = $(this), // or $("#gridId")
    p = $self.jqGrid("getGridParam"), // get all parameters
    newPage;

if (p.lastpage > 1) { // on the multipage grid
    newPage = p.page; // the current page
    if (p.reccount === 0 && p.page === p.lastpage) {
        // if after deleting there are no rows on the current page
        // which is the last page of the grid
        newPage -= 1; // go to the previous page
    }
    // reload grid to show rows from the page with rows.
    // depend on where you use the code fragment you could
    // need reloading only in case 
    // p.reccount === 0 && p.page === p.lastpage
    setTimeout(function () {
        $self .trigger("reloadGrid", [{ page: newPage}]);
    }, 50);
}

如果您需要在网格正文中显示一些消息文本,则可以关注为the demo创建的the answer。在reccount === 0的情况下,演示只显示带有消息文本的div。