根据某些条件将列文本显示为 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)#");