如何在KendoUI中添加MVC Grid一千个逗号分隔符

时间:2016-03-11 20:28:58

标签: asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc

我想在网格中显示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

3 个答案:

答案 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}"); 
})