2014-06-17 42 views
0

我有一個asp.net mvc應用程序,它使用淘汰賽Js和Odata將數據從數據庫表顯示到網頁。在我的模型中,我有幾個條目,它們是Double類型值,當我在網頁上顯示它們時,它的工作正常,如果該值是2.05類型的值,但當值爲2.5的類型2時出現問題是它只顯示2和2.5,而我希望它分別有兩個小數點,如2.00和2.50。如果數字不是雙精度值,則無法顯示雙精度值爲兩個十進制值

型號

public int Id { get; set; } 
public double? Bid { get; set; } 
public double? Offer { get; set; } 

淘汰賽JS

self.getverticaldata = function() { 
     $.ajax({ 
      dataType: "json", 
      url: '/odata/CC', 
      data: ko.toJSON(self.products), 
      async: false, 
      success: function (data) { 
       self.datainput((ko.utils.arrayMap(data.value, function (canadiancrude) { 
        var obsCanadianCrude = { 
         Id: canadiancrude.Id, 
         Bid: ko.observable(canadiancrude.Bid), 
         Offer: ko.observable(canadiancrude.Offer), 

        } 

        return obsCanadianCrude; 
       }))); 
      } 
     }); 
    } 

我可以知道一個更好的方式來處理這一點,最多兩個十進制值

顯示值

回答

1

在你的綁定,使用toFixed

data-bind="text: Bid().toFixed(2)" 
data-bind="text: Offer().toFixed(2)" 

這將顯示2.002.50

更新

爲了應對nullundefined,則可以顯示空字符串或一些佔位它。

data-bind="text: (typeof Bid() === 'number') ? Bid().toFixed(2) : '' " 
data-bind="text: (typeof Offer() === 'number') ? Offer().toFixed(2) : 'Not Exist!' " 
+0

謝謝,但是如果出價或報價爲空,這是失敗的 – DoIt

+0

這很容易,看到更新的答案。 – huocp