2015-10-19 84 views
0

我想设置KendoDropDownList的下拉窗口的宽度。使用以下代码:无法设置KendoDropDownList窗口大小

<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的运行时错误:无法获取属性“列表”的未定义或空引用

通话VAR下拉列表= $(“#下拉列表”)返回一个对象。所以元素“dropdownlist”确实存在。但是调用dropdownlist.data(“kendoDropDownList”)是未定义的。我不确定从哪里去找这个问题。很明显,kendo被定义是因为KendoDropDownList得到了正确的渲染。但出于某种原因,我无法选择元素并设置列表的宽度属性。

回答

1

的问题,我设置的KendoDropDownList “名称” 属性。但是,“名称”不是有效的属性。它应该是这个,而不是:

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

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

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

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

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

好主意,我会改变它为汽车。但问题是当我调用$(“#dropdownlist”)。data(“kendoDropDownList”)。列表,我得到错误的JavaScript运行时错误:无法获取未定义或空引用的属性'列表' – ihatemash

+0

看起来像它应该工作。你有没有尝试过创建一个jsFiddle来复制这个问题? –

+0

是的下拉列表显示并且是一个KendoDropDownList。所以我知道调用var ddl = $(“#dropdownlist”)。kendoDropDownList()正在工作。它的风格类似于KendoDropDownList,并包含模型中的正确值。所以它在$(“#dropdownlist”)。data(“kendoDropDownList”)的调用中。由于某些原因返回undefined。 – ihatemash