我想在网格中显示1000个1000(必须有逗号)。初始数据类型是字符串。我需要一千个逗号分隔符。
我有同样的问题 How to change display format of long variable?。但我的数据类型是字符串。
在本主题中,他们对KendoUI MVC Grid没有明确的答案 用于千位逗号分隔符。
我有KendoUI Grid
@(Html.Kendo().Grid((IEnumerable<MyApp.Models.MyModel>)ViewBag.QualReq)
.Name("MyGrid")
.Columns(columns =>
{
columns.Bound(p => p.Actual);
})
.DataSource(d => d
.Ajax()
)
)
模型
public class MyModel
{
public virtual string Actual { get; set; }
}
控制器
[OutputCache(Duration = 60)]
public ActionResult MyActionMethod(int RankId = 0)
{
. . .
ViewBag.QualReq = qualificationRequirements.Where(x => x.RankID == RankId).ToList();
. . .
我在数字格式主题中找不到MVC网格的任何信息。 http://docs.telerik.com/kendo-ui/framework/globalization/numberformatting
答案 0 :(得分:1)
您链接到的数字格式文档显示了如何在JavaScript中执行此操作。您遇到的部分问题是您使用字符串属性来存储数字数据。您需要将Actual
属性更改为int
(或其他一些数字类型),而不是string
,然后添加DisplayFormat
属性[DisplayFormat(DataFormatString = "{0:N2}")]
。
要记住的是,如果没有设置文化,它将使用线程的当前文化(可能是en-US,因为你想使用逗号作为分隔符)来确定分隔符是什么应该。如果你需要它是不同的(对于不同的文化),你将需要明确地设置文化。
答案 1 :(得分:1)
您可以使用ClientTemplate在网格上执行此操作。
@(Html.Kendo().Grid((IEnumerable<MyApp.Models.MyModel>)ViewBag.QualReq)
.Name("MyGrid")
.Columns(columns =>
{
columns.Bound(p => p.Actual).ClientTemplate("#= kendo.format('{0:N0}', parseInt(Actual)) #");
})
.DataSource(d => d
.Ajax()
)
)
如果此字段有时包含非数字数据,您可能需要包含一些逻辑来说明这些情况。
答案 2 :(得分:0)
在 Columns Kendo Grid 中设置 .Format("{0:n0}")
.Columns(columns =>
{
columns.Bound(c => c.Price).Format("{0:n0}");
})