JQGrid 搜索对话框:从下拉列表中选择列时,文本输入会调整大小



我正在使用jqGrid的搜索对话框,并根据此堆栈溢出帖子调整之前ShowSearch和之后重绘事件中的文本输入的大小。

这在初始加载和重置时效果很好,但是,正如该帖子答案的评论中所述,当从列下拉列表中选择新值时,文本输入会将其宽度调整为默认值。 如何在选择新的下拉列表项时保持文本输入的宽度?

我制定了一个解决方案。 如果有人知道其他方式,请做出贡献。 这是我所做的:我将一个 .change(( 函数附加到下拉列表。 此函数设置文本框的宽度值,有效地将其保留在适当的位置。 为了确保在设置 .change(( 函数时下拉列表存在,我在 beforeShowSearch 事件的同一函数调用中设置了它。 代码如下:

$(divId).jqGrid('navGrid', pagerId, { add: true, edit: false, del: false, search: true },
        {}, //default for edit
        {}, //default for add
        {}, //delete disabled
        { //search
            width: '750',
            beforeShowSearch: function () {
                   //set textbox width
                   $(".searchFilter table td .input-elm").css('width', '300px');
                   //keep it in place with .change() on select
                   $(".searchFilter table td select").change(function () {
                        $(".searchFilter table td .input-elm").css('width', '300px');
                   });
                   return true;
        },
        {} // view parameters
    );

当然,可以通过将.css调用提取到其自己的函数中来消除重复。 根据需要进行重构。

最新更新