【问题标题】:Kendo Grid Column of type Decimal Losing Precision十进制丢失精度类型的剑道网格列
【发布时间】:2014-05-07 00:25:08
【问题描述】:

我已将一些数据绑定到剑道网格,我遇到的问题是网格似乎只想显示两位小数而不是 5 或 6 位或经度和纬度列的实际值。

这是我认为的代码:

<div class="gridPadding">    
    @(Html.Kendo().Grid((IEnumerable<DealerPortal.Models.DealerViewModel>)ViewData["DealerResults"])
                .Name("dealerSearchResults")
                .Columns(columns =>
                {
                    columns.Bound("DealerID");
                    columns.Bound("DealerName");
                    columns.Bound("TerminalID");
                    columns.Bound("Status");
                    columns.Bound("Address1");
                    columns.Bound("State");
                    columns.Bound("PhoneNumber");
                    columns.Bound("Email");
                    columns.Bound("Latitude");
                    columns.Bound("Longitude");
                    columns.Bound("EpayRetailerID");
                })
                .DataSource(dataSource => dataSource.Server().Model(model => model.Id(d => d.DealerID)))
                .Selectable(selectable => selectable.Mode(GridSelectionMode.Multiple))
                .Sortable()
            )
        </div>

这里是 DealerViewModel 类:

public class DealerViewModel
{        
    public long DealerID { get; set; }
    public string DealerName { get; set; }
    public string Address1 { get; set; }
    public string PhoneNumber { get; set; }
    public string Email { get; set; }
    public decimal? Latitude { get; set; }
    public decimal? Longitude { get; set; }
    public string EpayRetailerID { get; set; }
    public string TerminalID { get; set; }
    public string State { get; set; }
    public char Status { get; set; }
}

当我单步执行代码时,我可以看到 ViewData["DealerResults"] 包含正确的经度和纬度值,但网页上显示的网格将其截断到小数点后 2 位。我只有可以为空的十进制类型来满足一些我在上游更远的错误,但这似乎不应该是问题。

我似乎也找不到格式化这些值的方法,因为有时它们是负值并且小数位数会发生变化。

我尝试了columns.Bound("Latitude").Format("00.000");,它只将每个值都设为“00.000”,columns.Bound("Latitude").Format("##.###"); 也将每个值设为“##.###”。

有什么想法吗?谢谢

【问题讨论】:

  • 为什么不只发送格式化字符串,而不是decimal?
  • 因为我太厚了,无法想到那个解决方案:/谢谢你的想法!

标签: asp.net-mvc-4 razor kendo-grid


【解决方案1】:

试试columns.Bound("Latitude").Format("{0:n6}"); 它将填写所有小数位直到第6位。希望这会有所帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-12-28
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多