【发布时间】:2014-08-11 01:39:03
【问题描述】:
我是 ASP.NET MVC 的初学者。这是我的代码,我正在寻求专家帮助。
在这段代码中,我正在计算 SaleTotal
[HttpPost]
public double SaleTotal(DateTime? FromDate, DateTime? ToDate)
{
var Sales = from s in db.SalesMasters
where (s.BillDate >= FromDate && s.BillDate <= ToDate)
select s.STotal;
var SalesReturn = from s in db.SReturnMasters
where s.ReturnDate >= FromDate && s.ReturnDate <= ToDate
select s.SRTotal;
double TotalSales = Sales.Sum().GetValueOrDefault();
double TotalSalesReturn = SalesReturn.Sum().GetValueOrDefault();
double Balance = TotalSales - TotalSalesReturn;
return Balance;
}
public ActionResult AllSaleReport(JQueryDataTableParamModel param, int? BillNo , DateTime ? FromDate,DateTime? ToDate)
{
double SalesTotal=SaleTotal(FromDate, ToDate);
var Sales = (from S in db.SalesMasters
where (S.BillDate >= FromDate && S.BillDate <= ToDate )
select S).ToList();
var filteredSales=(from S in db.SalesMasters
where (S.BillDate >= FromDate && S.BillDate <= ToDate && S.CancelFlag==false )
select S).ToList();
var result = from S in filteredSales.Skip(param.iDisplayStart).Take(param.iDisplayLength)
select new[] { S.BillDate.GetValueOrDefault().ToString("dd-MMM-yyyy"), Convert.ToString(S.BillNo), S.RefName, S.Paymode, Convert.ToString(S.NetAmt) };
return Json(new
{
sEcho = param.sEcho,
iTotalRecords = Sales.Count,
iTotalDisplayRecords = filteredSales.Count,
aaData = result,
SalesReturn = SaleTotal(FromDate, ToDate)
},
JsonRequestBehavior.AllowGet);
}
我的 JavaScript 将数据加载到 DataTable
function LoadAllData() {
var reportTable = $('#AllSales').dataTable({
"processing": true,
//"bprocessing": true,
"bJQueryUI": false,
"bServerSide": true,
"bFilter": false,
//"bAutoWidth": true,
"bDestroy": true,
"iDisplayLength": 20,
//"sProcessing": "<img src=~/Content/images/ajax-loader.gif />",
"dom": 'T<"clear">lfrtip',
"sSwfPath": "~/swf/copy_csv_xls_pdf.swf",
"fnPreDrawCallback": function () {
$("#AllSales").hide();
$("#loading").show();
// alert("Pre Draw");
},
"fnDrawCallback": function () {
$("#AllSales").show();
$("#loading").hide();
// alert("Draw");
},
"fnInitComplete": function () {
},
"fnServerParams": function (aoData) {
aoData.push({ "name": "FromDate", "value": $("#FromDate").val() })
aoData.push({ "name": "ToDate", "value": $("#ToDate").val() })
},
"sAjaxSource": "/Report/AllSaleReport",
"footerCallback": function (row, aoData, start, end, display) {
var api = this.api(), aoData;
// Remove the formatting to get integer data for summation
var intVal = function (i) {
return typeof i === 'string' ?
i.replace(/[\$,]/g, '') * 1 :
typeof i === 'number' ?
i : 0;
};
// Total over all pages
data = api.column(4).data();
alert(data.length);
// alert(SalesReturn);
total = data.length ?
data.reduce(function (a, b) {
return intVal(a) + intVal(b);
}) :
0;
// Total over this page
data = api.column(4, { page: 'current' }).data();
pageTotal = data.length ?
data.reduce(function (a, b) {
return intVal(a) + intVal(b);
}) :
0;
// Update footer
$(api.column(4).footer()).html(
'$' + pageTotal + ' ( $' + total + ' total)'
);
}
});
};
我想将 SaleTotal 传递给 DataTable 或我的视图
如何将 SaleTotal 从控制器传递给视图。我尝试了很多方法,但我的问题仍然没有解决。
【问题讨论】:
-
您能描述一下您遇到的错误吗?
-
当你调用 /Report/AllSaleReport 时 json 看起来如何?
-
需要在DataTable的页脚添加saleTotal..
-
SaleReport 工作正常..但我无法将 SaleTotal 从 Control 传递到 View
-
但是当您调用 /Report/AllSaleReport 时,您的 json 结果中确实有该数据。正确的?这就是为什么我问json看起来如何。然后,您可以获取该数据并将其插入到您想要的位置。
标签: asp.net-mvc asp.net-mvc-4 datatable asp.net-mvc-5 jquery-datatables