我正在尝试使用jquery填充Telerk下拉列表。以下是我的建议:
var dropDownList = $('#DropDownList').data('tDropDownList');
var dataSource =
[
{ Text: "Product 1", Value: "1" },
{ Text: "Product 2", Value: "2" },
{ Text: "Product 3", Value: "3" }
];
dropDownList.dataBind(dataSource);
在这里,我需要以下JavaScript文件才能使其正常工作:
我在我的Site.Master中使用其他CSS和JS文件注册了它们:
<head runat="server">
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
<link href="/Content/Site.css" rel="stylesheet" type="text/css" />
<link href="/Content/telerik.common.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/Scripts/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="/Scripts/Students.js"></script>
<script type="text/javascript" src="/Scripts/telerik.common.min.js"></script>
<script type="text/javascript" src="/Scripts/telerik.list.min.js"></script>
<script type="text/javascript" src="/Scripts/telerik.combobox.min.js"></script>
</head>
然后在Site.Master的最后我使用ScriptRegistrar:
<%= Html.Telerik().ScriptRegistrar() %>
但是,当我运行应用程序时,我收到以下“未定义”错误:
'undefined' is null or not an object
在线:
dropDownList.dataBind(dataSource);
这是我的DDL:
<%= Html.Telerik().DropDownList()
.Name("DropDownList")
.HtmlAttributes(new {@id = "DropDownList"})
.Items(items => {
items.Add().Text("Select").Value("Select");
})
%>
我在这里错过了一些步骤吗?我是否需要在拥有DDL的页面上注册java脚本文件? “site.master”是我已经注册了JS文件的“MasterPageFile”。
感谢任何帮助。
答案 0 :(得分:0)
尝试删除jquery的其他版本,只留下jquery-1.7.1.min.js并首先注册它。希望这有帮助!
答案 1 :(得分:0)
在Telerik DropDown组件加载(初始化)之后,您应该运行绑定代码。 通过声明OnLoad事件处理程序来实现此目的的一种方法:
.ClientEvents(events => events.OnLoad("List_OnLoad"))
function List_OnLoad(){
var dropDownList = $(this).data('tDropDownList');
// the same as
//var dropDownList = $('#DropDownList').data('tDropDownList');
dropDownList.dataBind(dataSource);
}
答案 2 :(得分:0)
将另一个ScriptRegistrar放入您的页面,并将您的代码放在OnDocumentReady方法中。这将在您的site.master ScriptRegistrar中的ScriptRegistrar中注册您的函数,并且一切都应该正常工作,因为此时控件已经初始化。希望这会有所帮助。