使用Drag'n'Resize jqGrid进行展开/折叠

时间:2011-12-18 21:53:31

标签: jquery asp.net-mvc jqgrid jqgrid-asp.net

使用带有鼠标的可重新调整大小的网格时,展开/折叠按钮无法与jqGrid一起正常工作。

jqGrid由可拖动的div包裹,该div设置网格的宽度/高度。当我折叠网格时,它会继续显示“调整大小”div,即使网格本身已折叠。

有人对此问题有任何建议吗?即使是jqGrid Demo也有这个问题。只有在您首次调整大小后才会出现此问题。然后尝试折叠网格。

http://trirand.com/blog/jqgrid/jqgrid.html

此演示正在复制我的问题。我使用完全相同的代码。您会注意到拖动时网格看起来也很丑陋。

1 个答案:

答案 0 :(得分:0)

因此,无论何时添加调整jqgrid大小的功能,它实际上都会将网格包装在调整网格大小后生成的网格中。 Jqgrid似乎静态设置内联css中的值,这会导致一些问题。

我为解决此问题所做的工作是查找将触发此事件的按钮。在jqgrid的情况下,有一个带有'HeaderButton'类的标签(它是右上角的按钮)。所以我使用jQuery来定位'click'事件,然后将'resize'包装器div的高度更改为'auto'。

基本上我这样做了:

//This first line select an element with a class="HeaderButton"
$('.HeaderButton').click(function () {
//Find the ID of the div that jqgrid is creating and replace RESIZEGRIDID with appropriate name
      if ($('#RESIZEGRIDID "/>').attr('data-status') != 'hidden' || $('#RESIZEGRIDID ').attr('data-status') == undefined) {
      $('#RESIZEGRIDID "/>').attr('data-status', 'hidden');
      $('#RESIZEGRIDID "/>').css({ 'height': 'auto' });
      } else {
      $('#RESIZEGRIDID "/>').attr('data-status', 'active');
      $('#RESIZEGRIDID "/>').css({ 'height': 'auto' });
      }

希望这有帮助;)