无法使用jquery填充telerik下拉列表

无法使用jquery填充telerik下拉列表,jquery,asp.net-mvc,telerik,telerik-mvc,Jquery,Asp.net Mvc,Telerik,Telerik Mvc,我正在尝试使用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

我正在尝试使用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文件来实现这一点:

  • jquery-1.7.1.min.js
  • telerik.common.min.js
  • telerik.list.min.js
  • 我用其他CSS和JS文件在我的Site.Master中注册了它们:

    <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>
    
    在线:

    dropDownList.dataBind(dataSource);
    
    这是我的DDL:

    <%= Html.Telerik().DropDownList()
    .Name("DropDownList")
    .HtmlAttributes(new {@id = "DropDownList"})
    .Items(items => {
        items.Add().Text("Select").Value("Select");
            })                     
            %> 
    
    {
    items.Add().Text(“选择”).Value(“选择”);
    })                     
    %> 
    
    我是不是漏了一步?我是否也需要在有DDL的页面上注册java脚本文件?“site.master”是我已经注册JS文件的“MasterPageFile”


    非常感谢您的帮助。

    尝试删除其他版本的jquery,只保留jquery-1.7.1.min.js并首先注册。希望这有帮助

    您应该在加载(初始化)Telerik下拉组件后运行绑定代码。 一种方法是声明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);
    }
    

    在页面中放置另一个ScriptRegister,并将代码放入OnDocumentReady方法中。这将向站点内的ScriptRegistrar.master ScriptRegistrar注册您的功能,并且所有功能都应正常工作,因为此时控件已初始化。希望这能有所帮助。

    尝试过这一点后,仍然在同一行上出现相同的错误:“undefined”为null或不是object,其中是行
    dropDownList.dataBind(dataSource)相对于脚本声明,以及相对于
    ?在结果页面上查看源代码,并查看所有
    脚本
    元素的位置。。。你可能会发现你有重复的。
    
    <%= Html.Telerik().DropDownList()
    .Name("DropDownList")
    .HtmlAttributes(new {@id = "DropDownList"})
    .Items(items => {
        items.Add().Text("Select").Value("Select");
            })                     
            %> 
    
    .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);
    }