Javascript Ho使用jtable插件在mvc中设置小数点后2位的格式

Javascript Ho使用jtable插件在mvc中设置小数点后2位的格式,javascript,jquery,number-formatting,Javascript,Jquery,Number Formatting,我有特鲁布尔格式的价格领域。这是我的看法。我将记录作为JSON对象从控制器发送,它工作得非常好。 我想将输出格式化为十进制,在点状100.00后加2位 <link href="~/Content/jtable.2.4.0/jtable.2.4.0/themes/metro/blue/jtable.css" rel="stylesheet" type="text/css"> <link href="~/Content/jquery-ui-themes-1.11.2/themes/

我有特鲁布尔格式的价格领域。这是我的看法。我将记录作为JSON对象从控制器发送,它工作得非常好。 我想将输出格式化为十进制,在点状
100.00
后加2位

<link href="~/Content/jtable.2.4.0/jtable.2.4.0/themes/metro/blue/jtable.css" rel="stylesheet" type="text/css">
<link href="~/Content/jquery-ui-themes-1.11.2/themes/start/jquery-ui.css" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="~/Scripts/jquery-1.11.1.js"></script>
<script type="text/javascript" src="~/Scripts/jquery-ui.js"></script>
<script type="text/javascript" src="~/Scripts/jquery.jtable.js"></script>

<script type="text/javascript">
   $(document).ready(function() {

      var lokalizacijaSrpski = {
         serverCommunicationError: 'Greska u komunikaciji sa serverom.',
         loadingMessage: 'Ucitavanje...',
         noDataAvailable: 'Podaci nisu dostupni',
         addNewRecord: 'Dodaj novi slog',
         editRecord: 'Izmjeni',
         areYouSure: 'Da li ste sigurni?',
         deleteConfirmation: 'Da li ste sigurni da zelite da obrisete slog?',
         save: 'Sacuvaj',
         saving: 'Snimanje',
         cancel: 'Odustani',
         deleteText: 'Obrisi',
         deleting: 'Brisanje',
         error: 'Greska',
         close: 'Zatvori',
         cannotLoadOptionsFor: '{0} nemoguce ucitati!',
         pagingInfo: 'Ukupno {2}, prikaz {0} od {1}',
         gotoPageLabel: 'Idi na stranicu',
         pageSizeChangeLabel: 'Broj redova',
         canNotDeletedRecords: '{1} nemogucnost brisanja {0} sloga!'
      };

      $('#tXMLIndex').jtable({
         messages: lokalizacijaSrpski,
         title: 'XML PARSER',
         paging: true,
         pageSize: 10,
         sorting: true,
         actions: {
            listAction: '/XmlParser/ListXML'
         },
         fields: {
            XMLId: {
               title: 'Xml id',
               key: true,
               create: false,
               edit: false
            },
            Naziv: {
               title: 'Naziv'
            },
            Price: {
               title: 'Price'

            }
         },

         recordUpdated: function(event, data) {
            $('#tXMLIndex').jtable('load');
         }
      });

      $('#tXMLIndex').jtable('load');

      $.fn.focusTextToEnd = function() {
         this.focus();
         var $thisVal = this.val();
         this.val('').val($thisVal);
         return this;
      }
      $('#tbXMLIndexPretraga').focusTextToEnd();

      $("#tbXMLIndexPretraga").keyup(function() {
         $("#tXMLIndex").jtable('load', {
            searchString: $("#tbXMLIndexPretraga").val()
         });
      });
   });
</script>

<div id="tXMLIndex"></div>

$(文档).ready(函数(){
var lokalizacijaSrpski={
服务器通信错误:“Greska u komunikaciji sa serverom.”,
正在加载消息:“Ucitavanje…”,
节点可用:“Podaci nisu dostupni”,
addNewRecord:'Dodaj novi slog',
editRecord:'Izmjeni',
你确定“Da li ste sigurni”吗,
删除确认:“你的工作是什么?”,
保存:'Sacuvaj',
保存:'斯尼曼杰',
取消:“奥古斯塔尼”,
deleteText:'Obrisi',
删除:“Brisanje”,
错误:“Greska”,
关闭:“Zatvori”,
无法为“{0}nemoguce ucitati!”加载选项,
PaginInfo:'Ukupno{2},prikaz{0}od{1}',
gotoPageLabel:“Idi na stranicu”,
pageSizeChangeLabel:“Broj redova”,
canNotDeletedRecords:“{1}nemogucnost brisanja{0}sloga!”
};
$('#tXMLIndex').jtable({
信息:lokalizacijaSrpski,
标题:“XML解析器”,
是的,
页面大小:10,
排序:对,
行动:{
listAction:“/XmlParser/ListXML”
},
字段:{
XMLId:{
标题:“Xml id”,
关键:没错,
创建:false,
编辑:false
},
纳齐夫:{
标题:“纳齐夫”
},
价格:{
标题:“价格”
}
},
记录更新:功能(事件、数据){
$('#tXMLIndex').jtable('load');
}
});
$('#tXMLIndex').jtable('load');
$.fn.focusTextToEnd=函数(){
这是focus();
var$thisVal=this.val();
this.val(“”).val($thisVal);
归还这个;
}
$('tbxmlindexpretaga').focusTextToEnd();
$(“#tbxmlindexpretaga”).keyup(函数(){
$(“#tXMLIndex”).jtable('load'{
搜索字符串:$(“#tbxmlindexpretaga”).val()
});
});
});

有什么建议吗?

客户端:

我已经做了数字格式化使用,它工作得很好

如果您愿意将js添加到页面中,您可以这样做:

  Price: { title: 'Price',
           edit: true,
           list: true,
           display: function (data) {
                      return number_format(data.record.price, 2, '.', ',');
                    }
         },
number\u格式
如下:

函数编号\u格式(数字、小数、小数点、千位sep)

服务器端:

为了帮助您,您必须发布一些代码。您的JSON看起来像什么?从
/XmlParser/ListXML
中得到了什么?

服务器端的外观

公共JsonResult ListXML(int-jtStartIndex=0,int-jtPageSize=0,string-jtSorting=null,string-searchString=null) {

        XmlReader readXML = new XmlReader();

        var data = readXML.RetrunListOfProducts();

        var lista = (from obj in data select new { XMLId=obj.ProductId,Naziv=obj.ProductName,Cjena=obj.ProductCost });



        if (searchString != null)
        {
            lista = lista.Where(b => b.Naziv.Contains(searchString));
        }

        if (jtSorting == null)
        {
            jtSorting = "XMLId DESC";
        }

        switch (jtSorting)
        {
            case "XMLId ASC":
                lista = lista.OrderBy(a => a.XMLId);
                break;
            case "Naziv ASC":
                lista = lista.OrderBy(a => a.Naziv);
                break;
            case "Naziv DESC":
                lista = lista.OrderByDescending(a => a.Naziv);
                break;

            case "Cjena ASC":

                //lista = from obj in lista
                //        orderby Convert.ToDecimal(obj.Cjena) ascending
                //        select new { XMLId=obj.XMLId,Naziv=obj.Naziv,Cjena=obj.Cjena };

                lista = from obj in lista
                        orderby obj.Cjena ascending
                        select new { XMLId = obj.XMLId, Naziv = obj.Naziv, Cjena = obj.Cjena };

                break;
            case "Cjena DESC":

                //lista = from obj in lista
                //        orderby Convert.ToDecimal(obj.Cjena) descending
                //        select new { XMLId = obj.XMLId, Naziv = obj.Naziv, Cjena = obj.Cjena };
                lista = from obj in lista
                        orderby obj.Cjena descending
                        select new { XMLId = obj.XMLId, Naziv = obj.Naziv, Cjena = obj.Cjena };


                break;



            default:
                lista = lista.OrderByDescending(a => a.XMLId);
                break;
        }

        var pagingLista = lista.Skip(jtStartIndex).Take(jtPageSize);

        return this.Json(
                          new
                          {
                              Result = "OK",
                              Records = pagingLista.ToList(),
                              TotalRecordCount = lista.Count()
                          }
                          , JsonRequestBehavior.AllowGet
                       );
    }

老实说,我不确定价格值的计算位置,但是
.toFixed(2)
应该会有帮助。products=(来自ds.Tables[0]中的行)。AsEnumerable()选择新产品{ProductId=Convert.ToInt32(行[0].ToString()),ProductName=rows[1].ToString(),ProductCost=Convert.ToDecimal(行[2].ToString()),//此时,我希望将格式设置为带2位的十进制,而不是10.00 return 1000})。ToList();return products;当我使用类似display:函数(数据)时{返回小数(data.record.Price,2,',',');}我仍然得到10000而不是100.00???