2015-10-19 124 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