Kendo ui 使用下拉值绑定剑道网格数据
我在页面上有剑道下拉列表,它从数据库中获取结果,如下所示。我也有一个网格在同一页在同一时间,需要剑道下拉列表值,即从年下拉列表的值,但我无法得到它在同一时间。这是我下面的方式。我做错了什么Kendo ui 使用下拉值绑定剑道网格数据,kendo-ui,kendo-grid,kendo-dropdown,Kendo Ui,Kendo Grid,Kendo Dropdown,我在页面上有剑道下拉列表,它从数据库中获取结果,如下所示。我也有一个网格在同一页在同一时间,需要剑道下拉列表值,即从年下拉列表的值,但我无法得到它在同一时间。这是我下面的方式。我做错了什么 <script type="text/javascript"> var GridUrl; $("#Years").kendoDropDownList({ dataTextField: "Name", dataValueField: "Id",
<script type="text/javascript">
var GridUrl;
$("#Years").kendoDropDownList({
dataTextField: "Name",
dataValueField: "Id",
dataSource: {
transport: {
read: {
dataType: "json",
url: "../../Service/GetYears"
}
}
}
});
$(document).ready(function () {
BindGridData();
GridUrl = '@Url.Action("Read", "Home")';
});
function BindGridData()
{
GridDataSource = new kendo.data.DataSource({
type: "aspnetmvc-ajax",
serverFiltering: true,
serverPaging: true,
serverSorting: true,
pageSize: 10,
transport: {
read: {
url: GridUrl,
data: { year: $('#Years').val() }
}
},
schema: {
data: "Data", total: "Total"
}
});
}
var-GridUrl;
$(“#年”)。kendoDropDownList({
dataTextField:“名称”,
dataValueField:“Id”,
数据源:{
运输:{
阅读:{
数据类型:“json”,
url:“../Service/GetYears”
}
}
}
});
$(文档).ready(函数(){
BindGridData();
GridUrl='@Url.Action(“读取”、“主目录”);
});
函数BindGridData()
{
GridDataSource=新建kendo.data.DataSource({
键入:“aspnetmvc ajax”,
是的,
对,,
对,,
页面大小:10,
运输:{
阅读:{
url:GridUrl,
数据:{year:$('#Years').val()}
}
},
模式:{
数据:“数据”,总计:“总计”
}
});
}
将行更改为此
year: $('#Years').data("kendoDropDownList").value()
这应该是个骗局。您需要获取kendoDropDownListwidget
的实例才能获取其值。您需要这样做,因为kendoDropDownListwidget
值不会直接保存到html
元素中将行更改为此
year: $('#Years').data("kendoDropDownList").value()
这应该是个骗局。您需要获取
kendoDropDownListwidget
的实例才能获取其值。您需要这样做,因为kendoDropDownListwidget
值没有直接保存到html
元素中。首先,您需要将kendoDropDownList
的初始化移到document ready函数中。如果不这样做,您可能会引用(尚未加载)的元素
应该做的第二个更改是如何从kendoDropDownList
获取值。通常,您应该引用小部件而不是DOM元素:$(“#年”).data(“kendoDropDownList”).value()
最后,您没有提到如何以及何时绑定网格,但是如果用户更改下拉列表值,您可能希望刷新网格数据。如果是这种情况,您可能希望使用下拉列表的change
事件刷新网格数据
$(document).ready(function () {
$("#Years").kendoDropDownList({
dataTextField: "Name",
dataValueField: "Id",
dataSource: {
transport: {
read: {
dataType: "json",
url: "../../Service/GetYears"
}
}
},
change: function(e) {
$("#YourGrid").data("kendoGrid").dataSource.read();
}
});
BindGridData();
GridUrl = '@Url.Action("Read", "Home")';
});
function BindGridData() {
GridDataSource = new kendo.data.DataSource({
type: "aspnetmvc-ajax",
serverFiltering: true,
serverPaging: true,
serverSorting: true,
pageSize: 10,
transport: {
read: {
url: GridUrl,
data: { year: $('#Years').data("kendoDropDownList").value() }
}
},
schema: {
data: "Data", total: "Total"
}
});
}
首先,您需要将
kendoDropDownList
的初始化移到document ready函数中。如果不这样做,您可能会引用(尚未加载)的元素
应该做的第二个更改是如何从kendoDropDownList
获取值。通常,您应该引用小部件而不是DOM元素:$(“#年”).data(“kendoDropDownList”).value()
最后,您没有提到如何以及何时绑定网格,但是如果用户更改下拉列表值,您可能希望刷新网格数据。如果是这种情况,您可能希望使用下拉列表的change
事件刷新网格数据
$(document).ready(function () {
$("#Years").kendoDropDownList({
dataTextField: "Name",
dataValueField: "Id",
dataSource: {
transport: {
read: {
dataType: "json",
url: "../../Service/GetYears"
}
}
},
change: function(e) {
$("#YourGrid").data("kendoGrid").dataSource.read();
}
});
BindGridData();
GridUrl = '@Url.Action("Read", "Home")';
});
function BindGridData() {
GridDataSource = new kendo.data.DataSource({
type: "aspnetmvc-ajax",
serverFiltering: true,
serverPaging: true,
serverSorting: true,
pageSize: 10,
transport: {
read: {
url: GridUrl,
data: { year: $('#Years').data("kendoDropDownList").value() }
}
},
schema: {
data: "Data", total: "Total"
}
});
}