【问题标题】:jqGrid - How can i disable column draggable but can sortable columnsjqGrid - 我如何禁用列可拖动但可以排序列
【发布时间】:2017-02-06 02:38:46
【问题描述】:
  1. 我想通过拖动列来禁用重新排序,但 jqGrid 可以对列进行排序。
  2. 或者,我想通过拖动列并使用列选择器来启用重新排序。

此代码是拖动列出现错误。

$(function () {   
    jQuery("#search_datagrid").jqGrid("GridUnload").jqGrid({
        url: '/Search/SearchDataGrid/',
        datatype: "json",
        contentType: "application/json; charset-utf-8",
        mtype: 'POST',
        postData: {
             search_word: search_word,
             baseLang: baseLang,
             targetLang: targetLang,
             products: products
        },
        rowNum: 20,
        rowList: [10, 20, 30, 50],
        colNames: columnNames,
        colModel: columnModels,
        shrinkToFit: true,
        height:'auto',
        autowidth: true,
        pager: "#search_pager",
        viewrecords: true,
        caption: "Result",
        subGrid: true,
        sortable: true,
        loadonce: true,
        gridview: true,

        subGridOptions: {
            "plusicon": "ui-icon-triangle-1-e",
            "minusicon": "ui-icon-triangle-1-s",
            "openicon": "ui-icon-arrowreturn-1-e"
        },
    })
    .jqGrid('navGrid', '#search_pager', { add: false, edit: false, del: false, search: false, refresh: false })
    .jqGrid('navButtonAdd', '#search_pager', {
        caption: "Select Columns",
        title: "Select Columns",
        buttonicon: "ui-icon-calculator",
        onClickButton: function () {
            jQuery("#search_datagrid").jqGrid('columnChooser');
        }
    })
    .jqGrid('setGroupHeaders', {
        useColSpanStyle: true,
        groupHeaders: [
          { startColumnName: '' + baseLang, numberOfColumns: 2, titleText: 'Language' },
        ]
    })
});
$(window).resize(function () {
    $("#search_datagrid").setGridWidth($(this).width() - $(this).width() / 10);
});

【问题讨论】:

    标签: javascript jquery jquery-ui jqgrid


    【解决方案1】:

    您使用的网格选项sortable: true 负责在拖放列标题时对 进行重新排序。另一方面,colModelsortable: false 属性可用于防止通过单击列标题对列中的数据 进行排序。关于columnChooser 的列重新排序独立于上述选项和属性,但可以使用colModel 中的hidedlg: true 属性来防止在列选择器对话框中显示某些列。

    因此,如果我正确理解您的问题,您应该只删除网格的sortable: true,而不是在colModel 内指定任何sortable 属性(sortable 属性的默认值为true,即允许对数据进行排序)。

    【讨论】:

    • 虽然,通过拖动列重新排序不起作用,禁用拖动和排序效果很好。谢谢,我很感激。
    • @lcy:不客气!您在“通过拖动列重新排序不起作用”下的意思是什么?试试the demo。你包括jquery-ui.min.js吗?如果你使用 jqGrid 的sortable: true 选项,你能看到拖动开始了吗?列诉诸的结果是错误的吗? 您使用哪个版本的 jqGrid 以及来自哪个 jqGrid 分支(free jqGrid、商业Guriddo jqGrid JS 或版本
    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 2020-02-23
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 2016-07-20
    相关资源
    最近更新 更多