Kendo ui 剑道网格mvc计算列未格式化
MVC 5,剑道2017.2.504 我无法将计算列正确格式化(转换为货币) 我尝试在Kendo ui 剑道网格mvc计算列未格式化,kendo-ui,kendo-grid,kendo-asp.net-mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,MVC 5,剑道2017.2.504 我无法将计算列正确格式化(转换为货币) 我尝试在ClientTemplate中使用javascript函数调用,但从未调用js函数 .ClientTemplate("#=formatCurrency(TotalAmount*Deductibility)#") function formatCurrency(value) { var result = kendo.toString(value, "c"); return resul
ClientTemplate
中使用javascript函数调用,但从未调用js函数
.ClientTemplate("#=formatCurrency(TotalAmount*Deductibility)#")
function formatCurrency(value) {
var result = kendo.toString(value, "c");
return result;
}
还尝试直接使用kendo.toString
:
.ClientTemplate("#= kendo.toString(TotalAmount*Deductibility, 'C') #")
.ClientTemplate("#= kendo.toString(TotalAmount*Deductibility, 'c') #")
以下是网格定义(仅显示所需的列)。有一点需要注意,
网格有可扩展的行(在DetailTemplate
中定义),可扩展的行使用ajax数据源,但外部网格没有。我认为这是问题的一部分,我使用的是ClientTemplate
(在外部网格中),但数据源不是Ajax。电网的所有其他方面都按预期运行:
Html.Kendo().Grid(Model)
.Name("TaxClass")
.Columns(columns =>
{
...
columns.Template(c => c.TotalAmount * c.Deductibility).Title("Amount Deductible").ClientTemplate("#=formatCurrency(TotalAmount*Deductibility)#")
.HtmlAttributes(new {@class = "currency"}).Width(110);
})
.DetailTemplate(
...
)
.Filterable()
.DataSource(dataSource => dataSource.Server())
.Render();
}
我首选的方法是在viewmodel中进行计算,但您可以执行以下操作:
columns.Template(c => { })
.ClientTemplate("#= kendo.toString(deductibleAmount(data),'c')#")
.HtmlAttributes(new {@class = "currency"}).Title("Amount Deductible").Width(110);
然后添加脚本:
<script type="text/javascript">
//Passed data contains current row model
function deductibleAmount(data) {
return data.TotalAmount * data.Deductibility;
}
</script>
//传递的数据包含当前行模型
功能免赔额(数据){
返回数据。合计金额*数据。可扣除性;
}
我为您准备了一个dojo示例,这就是您想要的吗?如果这是你想要的,我将为你展开一个完整的答案。@Davidshort这些好例子,感谢dojo-非常有用