无法读取未定义的属性'setdatasource' [英] Cannot read property 'setdatasource' of undefined

查看:212
本文介绍了无法读取未定义的属性'setdatasource'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨我有一个剑道下拉如下:



@(Html.Kendo()。DropDownList()

.Name( ddlRoleID)

.OptionLabel(选择角色)

.HtmlAttributes(new {@style =float:left; text-align:left; width:59 %;})

.DataTextField(RoleName)

.DataValueField(RoleID)

.DataSource(source =>

{

source.Read(read =>

{

read.Action(Bi ndRole,WebUser);

});

})









使用ajax请求填充数据,数据也显示如下:







Hi I have a kendo dropdown as follows:

@(Html.Kendo().DropDownList()
.Name("ddlRoleID")
.OptionLabel("Select Role")
.HtmlAttributes(new { @style = " float: left; text-align: left; width: 59%;" })
.DataTextField("RoleName")
.DataValueField("RoleID")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("BindRole", "WebUser");
});
})
)



the data is populated using ajax request and the datas are shown also as this:



//this is to bind role when the page is loaded first
           var ddl = $('#ddlRoleID').data("kendoMultiSelect");
           $.ajax({
               url: "/WebUser/BindRole",
               type: "Post",
               async: true,

               success: function (listItems) {
                   ddl.setDataSource(listItems);
                   ddl.refresh();
               }
           });













控制器方法如下:











The controller method is as this:


public JsonResult BindRole()
        {
            using (myEntities ObjEntities = new InternalDashboardEntities())
            {
                var roleList = ObjEntities.WebUserRole.Select(id => new { id.RoleID, id.RoleName }).AsEnumerable()
                                .Select(x => new 
                                {
                                    RoleID = x.RoleID,
                                    RoleName = x.RoleName
                                });

                return Json(roleList.ToList(), JsonRequestBehavior.AllowGet);
            }
        }









下拉列表已填充,但当我执行F12时,我可以看到错误说无法读取setDataSource。此问题是由于布局文件中列出的不正确的jquery资源引起的。非常感谢您的帮助。



谢谢



我的尝试:



布局中的jquery有这个结构。





< script src =@ Url .Content(〜/ Scripts / jquery-1.10.2.min.js)>< / script>

< script src =@ Url.Content(〜/ Scripts /kendo/2016.1.406/kendo.all.min.js\")\"></script>

< script src =@ Url.Content(〜/ Scripts / kendo / 2016.1.406 / kendo.aspnetmvc.min.js)>< / script>

< script src =@ Url.Content(〜/ Scripts / kendo.modernizr.custom.js)>< / script>





The dropdown is populated but when I do F12, i can see the error saying cannot read setDataSource. Is this issue arising due to incorrect jquery resources listed in layout file or something else. Your help would be appreciated.

Thanks

What I have tried:

jquery in layout has this strucutre.


<script src="@Url.Content("~/Scripts/jquery-1.10.2.min.js")"></script>
<script src="@Url.Content("~/Scripts/kendo/2016.1.406/kendo.all.min.js")"></script>
<script src="@Url.Content("~/Scripts/kendo/2016.1.406/kendo.aspnetmvc.min.js")"></script>
<script src="@Url.Content("~/Scripts/kendo.modernizr.custom.js")"></script>

推荐答案

' #ddlRoleID')。data( kendoMultiSelect);
('#ddlRoleID').data("kendoMultiSelect");


.ajax({
url: / WebUser / BindRole
类型: 发布
async: true

成功: function (listItems){
ddl.setDataSource(listItems);
ddl.refresh();
}
});
.ajax({ url: "/WebUser/BindRole", type: "Post", async: true, success: function (listItems) { ddl.setDataSource(listItems); ddl.refresh(); } });













控制器方法是这样的:











The controller method is as this:


public JsonResult BindRole()
        {
            using (myEntities ObjEntities = new InternalDashboardEntities())
            {
                var roleList = ObjEntities.WebUserRole.Select(id => new { id.RoleID, id.RoleName }).AsEnumerable()
                                .Select(x => new 
                                {
                                    RoleID = x.RoleID,
                                    RoleName = x.RoleName
                                });

                return Json(roleList.ToList(), JsonRequestBehavior.AllowGet);
            }
        }









下拉列表已填充,但当我执行F12时,我可以看到错误说无法读取setDataSource。此问题是由于布局文件中列出的不正确的jquery资源引起的。非常感谢您的帮助。



谢谢



我的尝试:



布局中的jquery有这个结构。





< script src =@ Url .Content(〜/ Scripts / jquery-1.10.2.min.js)>< / script>

< script src =@ Url.Content(〜/ Scripts /kendo/2016.1.406/kendo.all.min.js\")\"></script>

< script src =@ Url.Content(〜/ Scripts / kendo / 2016.1.406 / kendo.aspnetmvc.min.js)>< / script>

< script src =@ Url.Content(〜/ Scripts / kendo.modernizr.custom.js)>< / script>





The dropdown is populated but when I do F12, i can see the error saying cannot read setDataSource. Is this issue arising due to incorrect jquery resources listed in layout file or something else. Your help would be appreciated.

Thanks

What I have tried:

jquery in layout has this strucutre.


<script src="@Url.Content("~/Scripts/jquery-1.10.2.min.js")"></script>
<script src="@Url.Content("~/Scripts/kendo/2016.1.406/kendo.all.min.js")"></script>
<script src="@Url.Content("~/Scripts/kendo/2016.1.406/kendo.aspnetmvc.min.js")"></script>
<script src="@Url.Content("~/Scripts/kendo.modernizr.custom.js")"></script>


这篇关于无法读取未定义的属性'setdatasource'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆