无法设置 KendoDropDownList window 大小

Can't set KendoDropDownList window size

我正在尝试为 KendoDropDownList 设置下拉菜单的宽度 window。使用以下代码:

<input id="dropdownlist" name="SelectedServiceLine"/>

<script>
    $(function() {
        var mdl = @Html.Raw(Json.Encode(Model.ServiceLines));
        var ddl = $("#dropdownlist").kendoDropDownList({
            dataSource: mdl,
            name: "SelectedServiceLine",
            dataTextField: "Description",
            dataValueField: "Description"
        });
        var dropdownlist = $("#dropdownlist");
        var kendoDDL = dropdownlist.data("kendoDropDownList");
        kendoDDL.list.width(400);
    });
</script>

下拉列表显示是一个KendoDropDownList。所以我知道调用 var ddl = $("#dropdownlist").kendoDropDownList() 正在工作。但是,调用 kendoDDL.list.width(400) 时出现异常。

0x800a138f - JavaScript 运行时错误:无法获取 属性 'list' 未定义或空引用

调用 var dropdownlist = $("#dropdownlist") returns 一个对象。所以元素 "dropdownlist" 确实存在。但是对 dropdownlist.data("kendoDropDownList") 的调用是未定义的。我不确定从这里到哪里才能找到问题。显然 kendo 已定义,因为 KendoDropDownList 已正确呈现。但出于某种原因,我无法 select 元素并设置列表的宽度 属性.

我会这样设置宽度。它会自动将宽度调整为列表中最大的项目。

$("#dropdownlist").data("kendoDropDownList").list.width("auto");

更新: 你也可以试试这个:

var ddl = $("#dropdownlist").css("width", "400px").kendoDropDownList({ ...

问题是,我在 KendoDropDownList 上设置 "Name" 属性。但是,"Name" 不是有效的 属性。应该是这样的:

    var ddl = $("#dropdownlist").kendoDropDownList({
        dataSource: mdl,            
        dataTextField: "Description",
        dataValueField: "Description"
    });