解决Kendo ComboBox显示多列走样 (备忘)

71 篇文章 2 订阅

自定一个ComBoBox代码:

    var PubCOTypeCmb = kendo.ui.DataComboBox.extend({
        options: {
            name: "PubCOTypeCmb",
            boName: "PubCOType",
            methodName: "GetCOTypeList",
            params: { where: "1=1" },
            dataValueField: "type_name",
            dataTextField: "type_name",
            listWidth: 230,
            template:
                '<span style="width:50px; float:left; white-space:nowrap;" class="k-state-default">#: type_no #</span>' +
                '<span style="width:160px; float:left; white-space:nowrap;" class="k-state-default">#: type_name #</span>' 
        },
    });
    ui.plugin(PubCOTypeCmb);

一、当选项不多没有出现竖向滚动条时,显示正常, 如下图:


二、当选项增多出现竖向滚动条时,显示就不正常了( 第二列的内容跑到下一行了),如下图

经分析后发现问题出在这个 “竖向滚动条” 上。 它的出现占用了显示内容的横向宽度,令到本来一行可以放两列内容,现在放不下了,所以第2列只能换另一行了。


【解决方法一】 (建议

    var PubCOTypeCmb = kendo.ui.DataComboBox.extend({
        options: {
            name: "PubCOTypeCmb",
            boName: "PubCOType",
            methodName: "GetCOTypeList",
            params: { where: "1=1" },
            dataValueField: "type_name",
            dataTextField: "type_name",
            listWidth: 250,            
            template:
                '<span style="width:50px; float:left; white-space:nowrap;" class="k-state-default">#: type_no #</span>' +
                '<span style="width:160px; float:left; white-space:nowrap;" class="k-state-default">#: type_name #</span>' 
        },
    });
    ui.plugin(PubCOTypeCmb);
将listWidth的宽度由 230 -> 250,令到即使出现“竖向滚动条“仍有足够的横向宽度来容下两个字段。


【解决方法二】

    var PubCOTypeCmb = kendo.ui.DataComboBox.extend({
        options: {
            name: "PubCOTypeCmb",
            boName: "PubCOType",
            methodName: "GetCOTypeList",
            params: { where: "1=1" },
            dataValueField: "type_name",
            dataTextField: "type_name",
            listWidth: 230,
            template:
                '<div style="width:210px">' + 
                '<span style="width:50px; float:left; white-space:nowrap;" class="k-state-default">#: type_no #</span>' +
                '<span style="width:160px; float:left; white-space:nowrap;" class="k-state-default">#: type_name #</span>' + 
                '</div>'
        },
    });
    ui.plugin(PubCOTypeCmb);
每行显示内容 用div元素作为容器括起来,设定div足够的宽度,保证有足够的度来容下两个字段。

注意:
        曾经用 p 元素作为容器,但发现在EditPage页面正常,但放在Browser页就有问题了,如下图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值