【问题标题】:JQGrid Multiselect filter's scrollbar - how to setJQGrid 多选过滤器的滚动条 - 如何设置
【发布时间】:2014-12-18 23:38:36
【问题描述】:

目前我面临为多选过滤器启用垂直滚动条的问题。

下面是我为“DemandId”设置多选过滤器的代码,如下所示:setSearchSelect("DemandId", jQuery("#listTable"));

setSearchSelect = function (columnName, grid) {
            grid.jqGrid('setColProp', columnName,
                    {
                        searchoptions: {
                            clearSearch: false,
                            sopt: ['eq', 'ne'],
                            value: buildSearchSelect(getUniqueNames(columnName, grid)),
                            attr: { multiple: 'multiple', size: 3 },
                            dataInit: dataInitMultiselect
                        }
                    }
        );
dataInitMultiselect = function (elem) {
                    setTimeout(function () {
                        var $elem = $(elem), id = elem.id,
                            inToolbar = typeof id === "string" && id.substr(0, 3) === "gs_",
                            options = {
                                selectedList: 2,
                                height: "auto",
                                checkAllText: "all",
                                uncheckAllText: "no",
                                noneSelectedText: "Any",
                                open: function () {
                                    var $menu = $(".ui-multiselect-menu:visible");
                                    $menu.width("auto");
                                    return;
                                }
                            },
                            $options = $elem.find("option");
                        if ($options.length > 0 && $options[0].selected) {
                            $options[0].selected = false; // unselect the first selected option
                        }
                        if (inToolbar) {
                            options.minWidth = 'auto';
                        }
                        //$elem.multiselect(options);
                        $elem.multiselect(options).multiselectfilter({ placeholder: '' });
                        $elem.siblings('button.ui-multiselect').css({
                            width: inToolbar ? "98%" : "100%",
                            marginTop: "1px",
                            marginBottom: "1px",
                            paddingTop: "3px"
                        });
                    }, 50);

如何在 JQGrid 的多选过滤器中启用垂直滚动条。

非常感谢任何帮助。

【问题讨论】:

    标签: jquery jqgrid jquery-multiselect


    【解决方案1】:

    您目前使用multiselectheight: "auto" 选项。取而代之的是,您可以使用 elem.childElementCount$elem.find("option").length 来获取项目数。如果您有太多项目,您可以为height 参数使用一些固定数值而不是height: "auto"。或者,您可以将max-height CSS 属性设置为<ul>,它是open 回调中$menu 的直接子级。例如尝试使用

    open: function () {
        var $menu = $(".ui-multiselect-menu:visible");
        $menu.width("auto");
        $menu.find(">ul").css("maxHeight", "50px"); // some max-height value
        return;
    }
    

    【讨论】:

    • 感谢@Oleg 博士的完美答案和很好的解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    相关资源
    最近更新 更多