#asp.net-mvc #asp.net-mvc-4 #datatable #asp.net-mvc-5 #jquery-datatables
#asp.net-mvc #asp.net-mvc-4 #datatable #asp.net-mvc-5 #jquery-таблицы данных
Вопрос:
Я новичок в ASP.NET MVC. Вот мой код, я ищу экспертную помощь.
В этом коде я вычисляю SaleTotal
[HttpPost]
public double SaleTotal(DateTime? FromDate, DateTime? ToDate)
{
var Sales = from s in db.SalesMasters
where (s.BillDate >= FromDate amp;amp; s.BillDate <= ToDate)
select s.STotal;
var SalesReturn = from s in db.SReturnMasters
where s.ReturnDate >= FromDate amp;amp; 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 amp;amp; S.BillDate <= ToDate )
select S).ToList();
var filteredSales=(from S in db.SalesMasters
where (S.BillDate >= FromDate amp;amp; S.BillDate <= ToDate amp;amp; 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(
'
Я хочу передать SaleTotal в DataTable или my View
Как я могу передать SaleTotal из контроллера в представление. Я перепробовал много способов, но моя проблема все еще не решена.
Комментарии:
1. Не могли бы вы описать, какие ошибки вы получаете?
2. И как выглядит json при вызове /Report/AllSaleReport ?
3. необходимо добавить saleTotal в нижний колонтитул DataTable..
4. Отчет о продажах работает нормально .. но я не могу передать итоговый результат продаж из элемента управления в представление
5. Но у вас есть эти данные в вашем результате json при вызове /Report/AllSaleReport . Верно? Вот почему я спросил, как выглядит json. Затем вы можете захватить эти данные и вставить их туда, куда хотите.
Ответ №1:
Если я правильно понимаю, данные, которые вам нужны, - это данные из метода SaleTotal.
Эти данные находятся в формате json, возвращаемом методом AllSaleReport:
return Json(new
{
...
SalesReturn = SaleTotal(FromDate, ToDate)
},
Поэтому, когда вы вызываете AllSaleReport из DataTable, используйте fnServerData, чтобы переопределить функцию, которая получает эти данные, и вставить их туда, куда вы хотите. Что - то вроде:
"fnServerData": function (sSource, aoData, fnCallback) {
$.getJSON(sSource, aoData, function (result) {
var saleTotal = result.SalesReturn;
// Insert saleTotal in footer
fnCallback(result);
});
},
pageTotal ' (Я хочу передать SaleTotal в DataTable или my View
Как я могу передать SaleTotal из контроллера в представление. Я перепробовал много способов, но моя проблема все еще не решена.
Комментарии:
1. Не могли бы вы описать, какие ошибки вы получаете?
2. И как выглядит json при вызове /Report/AllSaleReport ?
3. необходимо добавить saleTotal в нижний колонтитул DataTable..
4. Отчет о продажах работает нормально .. но я не могу передать итоговый результат продаж из элемента управления в представление
5. Но у вас есть эти данные в вашем результате json при вызове /Report/AllSaleReport . Верно? Вот почему я спросил, как выглядит json. Затем вы можете захватить эти данные и вставить их туда, куда хотите.
Ответ №1:
Если я правильно понимаю, данные, которые вам нужны, - это данные из метода SaleTotal.
Эти данные находятся в формате json, возвращаемом методом AllSaleReport:
Поэтому, когда вы вызываете AllSaleReport из DataTable, используйте fnServerData, чтобы переопределить функцию, которая получает эти данные, и вставить их туда, куда вы хотите. Что - то вроде:
total ' total)'
);
}
});
};
Я хочу передать SaleTotal в DataTable или my View
Как я могу передать SaleTotal из контроллера в представление. Я перепробовал много способов, но моя проблема все еще не решена.
Комментарии:
1. Не могли бы вы описать, какие ошибки вы получаете?
2. И как выглядит json при вызове /Report/AllSaleReport ?
3. необходимо добавить saleTotal в нижний колонтитул DataTable..
4. Отчет о продажах работает нормально .. но я не могу передать итоговый результат продаж из элемента управления в представление
5. Но у вас есть эти данные в вашем результате json при вызове /Report/AllSaleReport . Верно? Вот почему я спросил, как выглядит json. Затем вы можете захватить эти данные и вставить их туда, куда хотите.
Ответ №1:
Если я правильно понимаю, данные, которые вам нужны, — это данные из метода SaleTotal.
Эти данные находятся в формате json, возвращаемом методом AllSaleReport:
Поэтому, когда вы вызываете AllSaleReport из DataTable, используйте fnServerData, чтобы переопределить функцию, которая получает эти данные, и вставить их туда, куда вы хотите. Что — то вроде: