如何在页面加载时填充Telerik下拉列表?
当我尝试填充下拉列表时,出现以下错误(在下面的强调行中):
Error: 'data(...)' is null or not an object
这是我尝试填充telerik ddl的方法:
$(function(){
var values = [];
for (var i = 1; i < 10; i++) {
values.push({ Text: i, Value: i });
}
****$("#MyDdl").data("tDropDownList").dataBind(values);****
});
也尝试过这种方式:
$(function(){
onDataBinding();
});
function onDataBinding(e) {
var MyDdl = $('#MyDdl').data('tDropDownList');
var values = [];
for (var i = 1; i < 10; i++) {
values.push({ Text: i, Value: i });
}
****MyDdl.dataBind(values);****
};
但是在上面强调的行中出现以下未定义的错误:
Error: 'undefined' is null or not an object
注意:
添加按钮并在按钮单击事件中加载ddl确实会填充telerik下拉列表。
用这种方式做的很好:
$(function(){
var values = [];
for (var i = 1; i < 10; i++) {
values.push({ Text: i, Value: i });
}
$("#MyDdl").data("tDropDownList").dataBind(values);
});
任何帮助深表感谢。
最佳答案
您需要在DropDownList的OnLoad事件处理程序中填充它:
.ClientEvents(events => events.OnLoad("ddl_onLoad").OnChange("ddl_onChange")
处理程序:
function ddl_onLoad(e) {
var ddl = $(this).data('tDropDownList');
ddl.dataBind([
{ Text: 'Product 1', Value: '1' },
{ Text: 'Product 2', Value: '2', Selected: true },
{ Text: 'Product 3', Value: '3' },
{ Text: 'Product 4', Value: '4' }
]);
}
function ddl_onChange(e) {
//var ddl = $(this).data('tDropDownList');
console.log(e.value);
}