Combobox 如何在下拉时水平展开jqGrid中的组合框以显示所有内容?

Combobox 如何在下拉时水平展开jqGrid中的组合框以显示所有内容?,combobox,jqgrid,expand,aramex,Combobox,Jqgrid,Expand,Aramex,如何水平展开组合框下拉显示 我的实际数据是:ARAMEX1234 但下拉显示仅显示:ARAMEX123 我需要支持以下浏览器:IE 6、7、8 我用Firefox测试了它,它是开箱即用的。但是,我的应用程序将在IE上运行,而不会在FF上运行 以下是代码(jsp文件内容): var-lastsel2; $(“#rowed5”).jqGrid({ 数据类型:“本地”, 身高:250, colNames:['ID Number','Name','Stock','Ship via','Notes'],

如何水平展开组合框下拉显示

我的实际数据是:
ARAMEX1234

但下拉显示仅显示:
ARAMEX123

我需要支持以下浏览器:IE 6、7、8

我用Firefox测试了它,它是开箱即用的。但是,我的应用程序将在IE上运行,而不会在FF上运行

以下是代码(jsp文件内容):


var-lastsel2;
$(“#rowed5”).jqGrid({
数据类型:“本地”,
身高:250,
colNames:['ID Number','Name','Stock','Ship via','Notes'],
colModel:[
{名称:'id',索引:'id',宽度:90,排序类型:“int”,可编辑:true},
{name:'name',index:'name',width:150,edit:true,editoptions:{size:'20',maxlength:'30'},
{名称:'stock',索引:'stock',宽度:60,可编辑:true,edittype:“复选框”,editoptions:{value:“是:否”},
{名称:'ship',索引:'ship',宽度:90,可编辑:true,edittype:“选择”,editoptions:{value:“FE:FedEx;IN:InTime;TN:TNT;AR:ARAMEX;AR1:ARAMEX123456789”},
{名称:'note',索引:'note',宽度:200,可排序:false,可编辑:true,edittype:'textarea',editoptions:{行:“2”,列:“10”}
],
标题:“输入类型”,
resizeStop:函数(newwidth,index){
var selectedRowId=$(“#rowed5”).getGridParam('selrow');
if(selectedRowId){
//按列大小按比例调整组合框大小
var selectElement=$('[id=“'+selectedRowId+'\u ship'][role=“select”]');
如果(选择element.length>0){
$(selectElement).width(newwidth);
}
}
}
,
OnSetrow:功能(id){
if(id&&id!==lastsel2){
//$(this).saveRow(lastsel2,true);
$(此).restoreRow(lastsel2);
$(this).editRow(id,true);
lastsel2=id;
$(this.scroll();
//按列大小按比例调整组合框大小
var rowSelectElements=$('[id^=“'+id+'.']role=“select”]”);
如果(rowSelectElements.length>0){
$(rowSelectElements)。每个(函数(索引,元素){
变量名称=$(元素).attr('name');
var columnElement=$('#rowed5'+名称);
如果(columnElement.length>0){
var columnWidth=$(columnElement).width();
$(元素)。宽度(列宽度);
}
});
}
}
}
});
变量mydata2=[
{id:“12345”,名称:“台式计算机”,备注:“备注”,股票:“是”,发货:“联邦快递”},
{id:“23456”,名称:“笔记本电脑”,注释:“长文本”,股票:“是”,船舶:“银泰”},
{id:“34567”,名称:“液晶显示器”,注:“注3”,库存:“是”,装运:“TNT”},
{id:“45678”,姓名:“扬声器”,注:“注”,库存:“否”,发货:“ARAMEX123456789”},
{id:“56789”,名称:“激光打印机”,注:“注2”,库存:“是”,发货:“联邦快递”},
{id:“67890”,名称:“Play Station”,注释:“note3”,股票:“No”,轮船:“FedEx”},
{id:“76543”,名称:“移动电话”,注释:“注释”,股票:“是”,船舶:“ARAMEX”},
{id:“87654”,名称:“服务器”,注:“注2”,库存:“是”,船舶:“TNT”},
{id:“98765”,名称:“矩阵打印机”,注:“注3”,库存:“否”,发货:“联邦快递”}
];
对于(var i=0;i
这是IE中一个众所周知的错误。您可以通过在鼠标上方或焦点上临时调整select输入的大小来修复它,如下文所述:

在您的特定示例中,代码可能如下所示:

    $("#rowed5 select").live({
        focus: function () {
            $(this).
                data("origWidth", $(this).css("width")).
                css("width", "auto");
        },
        blur: function () {
            var $this = $(this);
            $this.css("width", $this.data("origWidth"));
        }
    });

我添加了一个基于列大小的组合框自动宽度调整。调整尺寸后,停止并重新启动。你的意思是,除了combobox元素之外,不可能只扩展下拉列表吗?是的,下拉列表是在IE的操作系统级别实现的,你对它的样式或外观没有太多的控制。由于上述原因,我接受brainpeiris的回答,尽管问题没有得到回答。这是公认的解决办法。我找到了另一个解决方案,但它使用由文本框和div元素组成的定制组合框来处理下拉列表,但在我的例子中不值得。谢谢你,佩里斯。
    $("#rowed5 select").live({
        focus: function () {
            $(this).
                data("origWidth", $(this).css("width")).
                css("width", "auto");
        },
        blur: function () {
            var $this = $(this);
            $this.css("width", $this.data("origWidth"));
        }
    });