2014-09-24 11 views
0

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

可以请您指导如何解决该问题。我认为,它应该转移到更早的页面(最后一页)。

此外,相关问题: 当所有6条记录被删除。然后,网格仍然出现。尽管如此,应该有一些标签消息出现,因为没有记录存在。 如何做到这一点?

+0

您是否使用“local”数据类型?你如何删除行(哪个API)?您在删除过程中是否将任何数据发送到服务器?主要区别在于,可以在服务器*上更改行数*。因此,在本地删除记录期间,会刷新*刷新数据并加载服务器上的当前行数。在此期间,可以添加或删除其他一些行。 – Oleg 2014-09-24 06:55:54

+0

对于较少的细节感到抱歉。我做自定义删除。点击“超级链接”,调用javascript函数,使ajax调用服务器并删除记录。然后,我用'$(“#GrdList”)重新绘制网格。trigger('reloadGrid');'。请指导如何更改页面以防万一它被删除。此外,没有记录,然后只显示标签。我得到了'emptyrecords',但是,当页面没有记录时(虽然显示页眉和页面),它就会出现。 – dsi 2014-09-24 07:08:11

回答

1

您可以使用reccount选项,该选项提供网格当前页面上的编号或记录。如果记录数量为0,则可以执行其他操作。例如,你可以用附加page选项触发reloadGrid(见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 answer创建the demo。该演示仅在reccount === 0的情况下用消息文本显示div。

相关问题