使用setGridWidth后,jqgrid列无法调整大小

时间:2014-11-26 21:01:40

标签: jquery jqgrid

我有以下代码在窗口中显示一个表,当用户尝试调整列的大小时,它可以正常工作:

        $(document).ready(function() {
        $("#list").jqGrid({
            datastr: $(some data string),
            datatype: 'jsonstring',
            height: "auto",
            shrinkToFit: true,
            autowidth: true,                
            colModel: [ 
                { name:'lala', index: 'lala', , width:50, align:'center' },
                { name:'lele', index: 'lele', , width:50, align:'center' },
                .....
            ],
            jsonReader: { repeatitems: false  },
            gridview:true,
            viewrecords: true,
            rownumbers: true,
            autoencode: true,
            height: "100%",
            sortable: true,
            loadComplete: function () {
                var $self = $(this);
                if ($self.jqGrid("getGridParam", "datatype") === "jsonstring") {
                    setTimeout(function () {
                        $(this).trigger("reloadGrid"); // Call to fix client-side sorting
                    }, 50);
                }
            }
        });
    });

一切都很好。但是我希望在窗口最大化并恢复正常时调整表的大小,所以我添加了以下内容:

    $(window).bind('resize', function() {
        $("#list").jqGrid('setGridWidth', $(window).width()-30);
    }).trigger('resize');

现在桌面与窗口完全重新调整大小但是现在用户无法重新调整列的大小,有人可以让我知道如何让窗口重新调整窗口大小而不会丢失我的列功能重新调整大小?

我希望我很清楚,先谢谢你。

1 个答案:

答案 0 :(得分:0)

解决方案在以下文章中提供:

Jqgrid - window.bind event does not allow column resizing in IE8

出于某种原因,比较尺寸和更新相应地做了诀窍,不知道为什么这不仅仅是每次更新它,但它确实有效。