Javascript 剑道网格,根据条件详细显示不同的模板网格
我使用剑道网格和它的工作良好。我需要检查我的网格的每一行,如果它包含一个特定的值,那么使用一个模板绑定数据,否则模板将不同。这可能吗?这是我的密码Javascript 剑道网格,根据条件详细显示不同的模板网格,javascript,json,kendo-ui,kendo-grid,kendo-datasource,Javascript,Json,Kendo Ui,Kendo Grid,Kendo Datasource,我使用剑道网格和它的工作良好。我需要检查我的网格的每一行,如果它包含一个特定的值,那么使用一个模板绑定数据,否则模板将不同。这可能吗?这是我的密码 function detailInit(e) { var isCreateGrid = true; var masterRowId = e.data.uid; var data = []; $.ajax({ type: "GET", url
function detailInit(e) {
var isCreateGrid = true;
var masterRowId = e.data.uid;
var data = [];
$.ajax({
type: "GET",
url: 'https://www.domain.com/details?&transactionId=' + e.data.TransactionId,
contentType: "application/json; charset=utf-8",
dataType: 'json',
headers: { 'ccode': compCode },
cache: false,
async: false,
success: function (result) {
var jsonResult = JSON.parse(result);
for (var i = 0; i < jsonResult.length; i++) {
if (jsonResult[i]["OldValue"] == null || jsonResult[i]["OldValue"] == '')
isCreateGrid = true;
else {
isCreateGrid = false;
break;
}
}
if (isCreateGrid) {
for (var i = 0; i < jsonResult.length; i++) {
data.push({ FieldUpdated: jsonResult[i]["ChangeColumns"], Value: jsonResult[i]["NewValue"] });
}
} else {
for (var i = 0; i < jsonResult.length; i++) {
data.push({ FieldUpdated: jsonResult[i]["ChangeColumns"], Was: jsonResult[i]["OldValue"], Now: jsonResult[i]["NewValue"] });
}
}
}
});
var dataSource = new kendo.data.DataSource({ data: data });
if (data.length == 0) {
var grid = $("#logs").data("kendoGrid");
grid.collapseRow("[data-uid='" + masterRowId + "']");
grid.dataSource.read();
} else {
if (isCreateGrid) {
$("<div/>").appendTo(e.detailCell).kendoGrid({
dataSource: dataSource,
filter: { field: e.data.Log, operator: "contains", value: 'has created' },
columns:
[{ field: "FieldUpdated", title: "Field Updated", width: "50px" },
{ field: "Value", title: "Value", width: "50px" }]
});
} else {
$("<div/>").appendTo(e.detailCell).kendoGrid({
dataSource: dataSource,
filter: { field: e.data.Log, operator: "contains", value: 'has created' },
columns:
[{ field: "FieldUpdated", title: "Field Updated", width: "50px" },
{ field: "Was", title: "Was", width: "50px" },
{ field: "Now", title: "Now", width: "50px" }]
});
}
}
}
函数detailInit(e){
var isCreateGrid=true;
var masterRowId=e.data.uid;
var数据=[];
$.ajax({
键入:“获取”,
网址:'https://www.domain.com/details?&transactionId='+e.data.TransactionId,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
标题:{'ccode':compCode},
cache:false,
async:false,
成功:功能(结果){
var jsonResult=JSON.parse(result);
对于(var i=0;i
但是这个
isCreateGrid
条件似乎是无用的,因为如果他发现任何一行的isCreateGrid
条件为false,那么所有行都将有一个针对false条件的模板。可以。请参考下面的代码
$(gridId).kendoGrid({
dataSource: {
data: datasource
},
scrollable: true,
sortable: true,
resizable: true,
columns: [
{ field: "MetricName", title: "Metric", width: "130px" },
{ field: "OnTrack", title: "On Track", template:'#:changeTemplate(OnTrack)#', width: "130px", attributes: { style: "text-align: center !important;" } },
{ field: "CurrentAmount", title: "Current", template: '$ #:parseFloat(CurrentAmount).toFixed(2)#', width: "130px" },
{ field: "RequiredAmount", title: "Required", template: '$ #:parseFloat(RequiredAmount).toFixed(2)#', width: "130px" }
]
});
function changeTemplate(value)
{
Conditions depending on Your Business Logic
if ()
return "HTML Here";
else
return "HTML Here";
}
您可以在GridDatabound事件上对isCreateGrid进行条件检查这对您有效吗??那你能投赞成票吗?