C# 无法访问jQuery中的Kendo数据源
我在C# 无法访问jQuery中的Kendo数据源,c#,jquery,html,kendo-grid,datasource,C#,Jquery,Html,Kendo Grid,Datasource,我在KendoUI绑定方面非常新,我的场景是我使用Kendo绑定网格,数据显示给我,但当我试图在jquery中访问datasource时,它给了我一个错误,显示: 无法读取未定义的属性“dataSource” 下面是MVC视图代码: @(Html.Kendo().Grid<Buck.TaskNet.Web.Areas.Admin.Models.GetMembers>() .Name("MemberGrid") .Columns(columns => { columns
Kendo
UI绑定方面非常新,我的场景是我使用Kendo
绑定网格,数据显示给我,但当我试图在jquery
中访问datasource
时,它给了我一个错误,显示:
无法读取未定义的属性“dataSource”
下面是MVC视图代码:
@(Html.Kendo().Grid<Buck.TaskNet.Web.Areas.Admin.Models.GetMembers>()
.Name("MemberGrid")
.Columns(columns =>
{
columns.Bound(p => p.Id).Width(15).Title("SL NO").Filterable(false);
columns.Bound(p => p.ClientID).Title("CLIENT ID").Filterable(false);
columns.Bound(p => p.LastName).Title("LAST NAME").Filterable(false);
columns.Bound(p => p.FirstName).Title("FIRST NAME").Filterable(false);
})
.Pageable()
.Sortable()
.HtmlAttributes(new { style = "height:550px;" })
.Filterable(ftp => ftp.Mode(GridFilterMode.Row))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Model(model => model.Id(p => p.Id))
.Read(read => read.Action("GetMembers", "Dashboard"))
.ServerOperation(false)
)
)
<div class="form-group col-lg-4">
<label class="col-form-label" for="fName">First Name</label>
<input type="text" class="form-control" id="fName">
</div>
@(Html.Kendo().Grid())
.名称(“成员网格”)
.列(列=>
{
列.绑定(p=>p.Id).宽度(15).标题(“SL编号”).可过滤(false);
columns.Bound(p=>p.ClientID).Title(“客户端ID”).Filterable(false);
columns.Bound(p=>p.LastName).Title(“LastName”).Filterable(false);
columns.Bound(p=>p.FirstName).Title(“FirstName”).Filterable(false);
})
.Pageable()
.Sortable()
.HtmlAttributes(新的{style=“height:550px;”})
.Filterable(ftp=>ftp.Mode(GridFilterMode.Row))
.DataSource(DataSource=>DataSource
.Ajax()
.页面大小(10)
.Model(Model=>Model.Id(p=>p.Id))
.Read(Read=>Read.Action(“GetMembers”、“Dashboard”))
.ServerOperation(错误)
)
)
Js代码在这里:
<script type="text/javascript">
$(document).ready(function () {
$("#fName").keyup(function () {
var value = $("#fName").val();
var grid = $("#MemberGrid").data("kendoGrid"); //undefined
debugger;
if (value) {
grid.dataSource.filter({ field: "FirstName", operator: "contains", value: value });
} else {
grid.dataSource.filter({});
}
});
});
</script>
$(文档).ready(函数(){
$(“#fName”).keyup(函数(){
var值=$(“#fName”).val();
var grid=$(“#MemberGrid”).data(“kendoGrid”);//未定义
调试器;
如果(值){
grid.dataSource.filter({field:“FirstName”,operator:“contains”,value:value});
}否则{
grid.dataSource.filter({});
}
});
});
这里是Html代码:
@(Html.Kendo().Grid<Buck.TaskNet.Web.Areas.Admin.Models.GetMembers>()
.Name("MemberGrid")
.Columns(columns =>
{
columns.Bound(p => p.Id).Width(15).Title("SL NO").Filterable(false);
columns.Bound(p => p.ClientID).Title("CLIENT ID").Filterable(false);
columns.Bound(p => p.LastName).Title("LAST NAME").Filterable(false);
columns.Bound(p => p.FirstName).Title("FIRST NAME").Filterable(false);
})
.Pageable()
.Sortable()
.HtmlAttributes(new { style = "height:550px;" })
.Filterable(ftp => ftp.Mode(GridFilterMode.Row))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Model(model => model.Id(p => p.Id))
.Read(read => read.Action("GetMembers", "Dashboard"))
.ServerOperation(false)
)
)
<div class="form-group col-lg-4">
<label class="col-form-label" for="fName">First Name</label>
<input type="text" class="form-control" id="fName">
</div>
名字
在keyup
函数上,要获取网格数据源
以应用自定义筛选器,但无法获取数据源
请检查附加的图像
您的网格是否在模态中?你会动态加载模态吗?您甚至可以访问
$(“#MemberGrid”)
?如果可以,那说明剑道UI库没有加载。是的,我可以在JS上获得$(“#MemberGrid”)。但我可以在第页看到图书馆(加载顺序是什么?先尝试加载jQuery,然后再加载kendo.all.min.js,看看是否有效。我怀疑你的问题在于加载文件的顺序。我可能错了。除非你动态加载网格,否则我从未遇到过类似的情况。