根据某些条件将列文本显示为 link
Show column text as link based on some condition
我正在使用 Kendo 网格来显示值。现在我的字段之一基于某些条件想要将文本显示为 link 并且 link 应该引用 javascript 函数。
下面是我的代码
columns =>
{
columns.Bound(r => r.RequestCode).Width(110);
columns.Bound(r => r.StaffId).Width(90);
columns.Bound(r => r.StaffName).Width(130);
columns.Bound(r => r.Company);
columns.Bound(r => r.RequestType).Width(90);
columns.Bound(r => r.NoofDays);
columns.Bound(r => r.TravelStartDate).Format("{0:dd-MMM-yyyy}").Width(130);
columns.Bound(r => r.TravelEndDate).Format("{0:dd-MMM-yyyy}").Width(130);
columns.Bound(r => r.SLADays).Width(90);
columns.Bound(r => r.AdvanceAmount).Width(130);
//columns.Bound(r => r.Installments);
columns.Bound(r => r.Installments).Width(90);
//columns.Bound(r => r.RecoveryAmount);
columns.Bound(r => r.RecoveryAmount).ClientTemplate("<span id='vatId'> #= VATAmount=kendo.toString((Installments == 0 ? 0 : AdvanceAmount/Installments), 'n0') # </span>" +
"<input type='hidden' class='VATAmount' value='#=kendo.toString( (Installments == 0 ? 0 : AdvanceAmount/Installments), 'n0')#' />").Width(130);
columns.Bound(r => r.WfStatusDesc).ClientTemplate("<a href=javascript:jsFoo(\'" + "#: RequestCode #" + "\')>#: WfStatusDesc #</a>").Title("Expense Status").Width(110);
columns.Bound(r => r.PaidAmount).Visible(false);
columns.Bound(r => r.DutyTravelID).Visible(false);
columns.Bound(r => r.StaffSeqNumber).Visible(false);
}
所以在 wfstatusDesc 列中,我希望如果文本等于批准,则显示为 link 其他简单文本。如果显示 link 然后点击那个 link 应该调用一个 javascript 函数并传递请求 ID 参数。
您需要将模板定义为函数
<script>
function someFunction(data) {
if(data.wfstatusDesc == 'Approve')
return '<a href="#tips">'+data.wfstatusDesc+'</a>';
else
return '<div>Not approved</div>';
}
</script>
然后使用它:
.ClientTemplate("#=someFunction(data)#");
我正在使用 Kendo 网格来显示值。现在我的字段之一基于某些条件想要将文本显示为 link 并且 link 应该引用 javascript 函数。 下面是我的代码
columns =>
{
columns.Bound(r => r.RequestCode).Width(110);
columns.Bound(r => r.StaffId).Width(90);
columns.Bound(r => r.StaffName).Width(130);
columns.Bound(r => r.Company);
columns.Bound(r => r.RequestType).Width(90);
columns.Bound(r => r.NoofDays);
columns.Bound(r => r.TravelStartDate).Format("{0:dd-MMM-yyyy}").Width(130);
columns.Bound(r => r.TravelEndDate).Format("{0:dd-MMM-yyyy}").Width(130);
columns.Bound(r => r.SLADays).Width(90);
columns.Bound(r => r.AdvanceAmount).Width(130);
//columns.Bound(r => r.Installments);
columns.Bound(r => r.Installments).Width(90);
//columns.Bound(r => r.RecoveryAmount);
columns.Bound(r => r.RecoveryAmount).ClientTemplate("<span id='vatId'> #= VATAmount=kendo.toString((Installments == 0 ? 0 : AdvanceAmount/Installments), 'n0') # </span>" +
"<input type='hidden' class='VATAmount' value='#=kendo.toString( (Installments == 0 ? 0 : AdvanceAmount/Installments), 'n0')#' />").Width(130);
columns.Bound(r => r.WfStatusDesc).ClientTemplate("<a href=javascript:jsFoo(\'" + "#: RequestCode #" + "\')>#: WfStatusDesc #</a>").Title("Expense Status").Width(110);
columns.Bound(r => r.PaidAmount).Visible(false);
columns.Bound(r => r.DutyTravelID).Visible(false);
columns.Bound(r => r.StaffSeqNumber).Visible(false);
}
您需要将模板定义为函数
<script>
function someFunction(data) {
if(data.wfstatusDesc == 'Approve')
return '<a href="#tips">'+data.wfstatusDesc+'</a>';
else
return '<div>Not approved</div>';
}
</script>
然后使用它:
.ClientTemplate("#=someFunction(data)#");