Jquery 绑定不同的数据源';根据选择,将s转换为单个剑道网格
目前我在我的应用程序中使用Kendo网格,但现在我得到了一个要求,即不同的datasource需要绑定到单个KendoGrid,只需将数据传递给datasource即可 当前,具有预定义标题的单个数据源的单个网格。 HTML代码:Jquery 绑定不同的数据源';根据选择,将s转换为单个剑道网格,jquery,asp.net-mvc,kendo-ui,kendo-grid,Jquery,Asp.net Mvc,Kendo Ui,Kendo Grid,目前我在我的应用程序中使用Kendo网格,但现在我得到了一个要求,即不同的datasource需要绑定到单个KendoGrid,只需将数据传递给datasource即可 当前,具有预定义标题的单个数据源的单个网格。 HTML代码: <div id="divShowAllReports"> </div> 从数据库获取数据的AJAX调用 <script> $(function () { $.ajax({
<div id="divShowAllReports">
</div>
从数据库获取数据的AJAX调用
<script>
$(function () {
$.ajax({
url: '@Url.Action("GetAndShowAdhocReports", "AdhocReport")',
type: "POST",
success: function (result) {
debugger;`enter code here`
BindGrid(result.lstAdhocReports);
//BindAdhocReport(result.lstAdhocReports);
},
error: function (error) {
alert("Failed");
}
})
})
</script>
$(函数(){
$.ajax({
url:'@url.Action(“GetAndShowAdhorReports”、“AdhorReport”),
类型:“POST”,
成功:功能(结果){
调试器;`在这里输入代码`
BindGrid(result.lstAdhocReports);
//BindAdhocReport(result.lstAdhocReports);
},
错误:函数(错误){
警报(“失败”);
}
})
})
成功将数据绑定到网格时:
function BindGrid(data) {
if (data != "" || data != undefined) {
$("#divShowAllReports").kendoGrid({
dataSource: {
data: data,
schema: {
model: {
fields: {
ReportID: { type: "string" },
ReportName: { type: "string" },
ReportQuery: { type: "string" },
IsAccessToAll: { type: "string" },
CustomerID: { type: "string" },
CustUserID: { type: "string" }
}
}
},
pageSize: 10,
},
sortable: true,
filterable: true,
columnMenu: true,
pageable: true,
columns: [{
field: "ReportName", title: "Report Name",
template: "<a value='#=ReportQuery#' href='javascript:void(0)' onclick=ShowAdhocGrid(this)>#=ReportName#</a>"
},
{ field: "ReportID", title: "ReportID", hidden: true },
{ field: "ReportQuery", title: "Report Query" },
{ field: "IsAccessToAll", title: "Is Access to All" },
{ field: "CustUserID", title: "CustUserID", hidden: true },
{ field: "CustomerID", title: "CustomerID", hidden: true },
]
});
}
else {
$("#divShowAllReports").html("<h4>No data Available</h4>")
}
}
函数绑定网格(数据){
如果(数据!=“”| |数据!=未定义){
$(“divShowAllReports”).kendoGrid({
数据源:{
数据:数据,
模式:{
型号:{
字段:{
ReportID:{type:“string”},
报告名称:{type:“string”},
ReportQuery:{type:“string”},
IsAccessToAll:{type:“string”},
CustomerID:{type:“string”},
CustUserID:{type:“string”}
}
}
},
页面大小:10,
},
可排序:是的,
可过滤:正确,
专栏菜单:是的,
pageable:对,
栏目:[{
字段:“报告名称”,标题:“报告名称”,
模板:“”
},
{字段:“ReportID”,标题:“ReportID”,隐藏:true},
{字段:“报告查询”,标题:“报告查询”},
{字段:“IsAccess ToAll”,标题:“Is Access to All”},
{字段:“CustUserID”,标题:“CustUserID”,隐藏:true},
{字段:“CustomerID”,标题:“CustomerID”,隐藏:true},
]
});
}
否则{
$(“#divShowAllReports”).html(“无可用数据”)
}
}
但现在iam面临的问题是无法将另一个数据绑定到此网格(数据与旧数据不同)。我只想使用一个网格,而不是不同的网格
请帮帮我
谢谢各位…您可以这样更改网格的数据源
var grid = $("#ProposalGridX").data("kendoGrid");
grid.dataSource.transport.options.read.url = "/Controller/Action";
grid.dataSource.read();
我通过删除模式来实现,并将值以对象数组的形式传递给列
$.ajax({
url: '@Url.Action("ShowSelectedAdhocReports", "AdhocReport")',
type: "POST",
data: { QueryString: e.outerHTML.split('"')[1] },
success: function (result) {
debugger;
var vData = result.lstAdhocReports;
var vColumnName = [];
var vMainList = [];
for (var loop = 0; loop < vData.length; loop++) {
var vInnerList = {};
var vInnerData = vData[loop];
for (var innerloop = 0; innerloop < vInnerData.length; innerloop++) {
vInnerList[vInnerData[innerloop].Key] = vInnerData[innerloop].Value;
if (loop == 0) {
vColumnName.push(vInnerData[innerloop].Key);
}
}
vMainList.push(vInnerList);
}
//BindGridTest(vMainList);
BindAdhocReport(vMainList, vColumnName);
},
error: function (error) {
alert("Failed");
}
})
function BindAdhocReport(dataToBind, columnName) {
$("#divAdhocReportGrid").html("");
debugger;
if (dataToBind != undefined) {
var vBodyColumns = [];
//body columns
for (var i = 0; i < columnName.length; i++) {
vBodyColumns.push({ field: columnName[i], title: columnName[i] });
}
debugger;
$("#divAdhocReportGrid").kendoGrid({
dataSource: {
data: dataToBind,
pageSize: 10,
},
sortable: true,
filterable: true,
columnMenu: true,
pageable: true,
columns: vBodyColumns
});
}
else {
$("#divAdhocReportGrid").html("<h4>No data Available</h4>")
}
}
$.ajax({
url:'@url.Action(“showselectedadhocreport”,“AdhocReport”),
类型:“POST”,
数据:{QueryString:e.outerHTML.split(“”)[1]},
成功:功能(结果){
调试器;
var vData=result.lstAdhocReports;
var vColumnName=[];
var vMainList=[];
for(var loop=0;loop
要为网格设置新的数据项,可以使用网格的setDataSource方法
因此,首先要初始化网格
关于ajax的成功,可以这样称呼
var dataSource = new kendo.data.DataSource({
data: yourRetrievedData
});
var grid = $("#divShowAllReports").data("kendoGrid");
grid.setDataSource(dataSource);
我将以数组对象的形式获取数据到前端..但我需要直接将数据绑定到剑道网格,而不指定列名称