如何在JqGrid中冻结动态列?

时间:2018-06-09 06:49:08

标签: jqgrid frozen-columns

我有这样的事情: 我想冻结Doctor Name列,这是Dynamic。 实际上,整个网格都是动态的。

  if (result[7] != null) {
                        var resu = JSON.parse(result[7]);
                        if (resu.length > 0) {
                            {
                                ColModel = [];
                                var model = Object.keys(resu[0]);
                                for (var i = 0; i < model.length; i++) {
                                    var responColNM = "";
                                    if (model[i] == "Doctor Name") {
                                        responColNM = {
                                            name: model[0], index: model[0], label: model[0], width: 140, editable: false, sortable: false, frozen: true,
                                        }
                                    }
                                    else {
                                        responColNM = {
                                            name: model[i], index: model[i], label: model[i], width: 43, editable: false, sortable: false,
                                        }
                                    }
                                    ColModel.push(responColNM);
                                }
                            }
                        }
                        strNew = resu;
                    }
                    else {
                        //store in arr
                        //str = { DOCTORNAME: '', CNT: '', DT: '' };
                        //strNew.push(str);
                    }

 if (str == 1) {
                colnames = [];
                colmodel = ColModel;
                $("#gvtable").jqGrid('setGridParam', { data: response }).trigger("reloadGrid");
                $("#gvtable").jqGrid('setFrozenColumns').trigger("reloadGrid");

此处,列医生名称不会冻结。 有什么建议? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

之前要回答的一些注意事项。

  1. colModel中的jqGrid名称不能包含空格。在您的情况下,它包含空格
  2. 调用setFrozenColumns方法后,您无需触发重新加载网格。
  3. 最后,但并非最不重要的是,colModel无法动态更改。为此,您需要销毁网格并使用新的colModel
  4. 重新创建它

    冻结列应该是colModel数组中的第一个,以便被冻结。在您的代码中,不清楚它是否是第一个。您设置了第一列,但不知道它是否首次添加到colModel