User-1677971424 posted
I have a ASP.Net Core Razor pages project. Trying to implement a DataTables. The HTML table was created through the scaffolding process and uses foreach loop to load the model data.
Here is my javascript to try and implement the datatable.
@section scripts {
<script type="text/javascript">
$(function () {
$.ajax({
type: 'GET',
url: '@Url.Page("TicketQuery", "DataSet")',
data: '{}',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: OnSuccess,
failure: function (response) {
alert(response.d);
alert(response);
},
error: function (response) {
alert(response.d);
alert(response);
}
});
});
function OnSuccess(response) {
$("#myTable").DataTable(
{
bLengthChange: true,
lengthMenu: [[5, 10, -1], [5, 10, "All"]],
bFilter: true,
bSort: true,
bPaginate: true,
data: response,
columns: [{ data: 'LocationName' },
{ data: 'ScaleTicketId' },
{ data: 'SettlementStatus' },
{ data: 'SettlementNbr' },
{ data: 'VehicleId' },
{ data: 'VendorId' },
{ data: 'VendorFullName' },
{ data: 'CommodityId' },
{ data: 'SplitPercentage' },
{ data: 'SplitWeight' },
{ data: 'UnappliedQuantity' },
{ data: 'AppliedQuantity' },
{ data: 'ShrinkQuantity' },
{ data: 'Grade' },
{ data: 'TicketReference' },
{ data: 'LoadOutDate' },
{ data: 'TicketDate' },
{ data: 'TicketType' },
{ data: 'ContractType' },
{ data: 'PricingTypeCode' },
{ data: 'ContractId' },
{ data: 'ShippedFromName' },
{ data: 'ShippedToName' },
{ data: 'IntendedLocationName' }]
});
};
</script>
}
I think I need a method that converts a list and returns Json to implement the datatable. Not sure how to go about this. My code below returns a string which doesn't work with IActionResult. I know it is not at all correct but shows what I am trying
to do.
public IActionResult OnGetDataSet()
{
CornerstoneTicketQuery = _context.Cornerstone_Ticket_Query.FromSqlRaw("cornerstone_get_tickets_query {0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}",
CustomerId, CommodityId, LocationId, TicketType, SettlementStatus, PricingType, ContractId, ContractType, FromDate, ToDate, TicketId).AsNoTracking().ToList();
return Newtonsoft.Json.JsonConvert.SerializeObject(CornerstoneTicketQuery);
}