Skip to content

DtParameters dtParameters error #9

Open
@karthikhane

Description

@karthikhane

DtParameters dtParameters can't initilize and getting ajaxy error in data loading.
Draw = 0,
search = null
column = null
length = null

[HttpPost]
public async Task LoadTable(DtParameters dtParameters, int districtid, int schoolid)
{
schoolid = 1;
var searchBy = dtParameters.Search?.Value;

        // if we have an empty search then just order the results by Id ascending
        var orderCriteria = "Id";
        var orderAscendingDirection = true;

        if (dtParameters.Order != null)
        {
            // in this example we just default sort on the 1st column
            orderCriteria = dtParameters.Columns[dtParameters.Order[0].Column].Data;
            orderAscendingDirection = dtParameters.Order[0].Dir.ToString().ToLower() == "asc";
        }
            //Direct table list into Grid
            using (var Context = new SchooldexAOIContext())
            {
                 var GridData = _context.UserSetupInfos.AsQueryable();

                if (!string.IsNullOrEmpty(searchBy))
                {
                    GridData = GridData.Where(r => r.FirstName != null && r.FirstName.ToUpper().Contains(searchBy.ToUpper()) ||
                                       r.LastName != null && r.LastName.ToUpper().Contains(searchBy.ToUpper()) ||
                                       r.Email != null && r.Email.ToUpper().Contains(searchBy.ToUpper()));                                          
                }
                GridData = orderAscendingDirection ? GridData.OrderByDynamic(orderCriteria, DtOrderDir.Asc) : GridData.OrderByDynamic(orderCriteria, DtOrderDir.Desc);

                // now just get the count of items (without the skip and take) - eg how many could be returned with filtering
                var filteredResultsCount = await GridData.CountAsync();
                var totalResultsCount =  await _context.UserSetupInfos.CountAsync();
                return Json(new DtResult<SchooldexAPI_DB.Contexts.UserSetupInfo>
                {
                    Draw = dtParameters.Draw,
                    RecordsTotal = totalResultsCount,
                    RecordsFiltered = filteredResultsCount,
                    // Data = GridData.ToList()
                    Data = await GridData
                .Skip(dtParameters.Start)
                .Take(dtParameters.Length)
                .ToListAsync()


                }); 


            }

           
        //}
        //return null;
    }

Js files

var table;

$(document).ready(function () {
// $.fn.dataTable.moment("DD/MM/YYYY HH:mm:ss");
// $.fn.dataTable.moment("DD/MM/YYYY");

table = $("#userlistgrid").DataTable({
    // Design Assets
    stateSave: true,
    autoWidth: true,
    // ServerSide Setups
    processing: true,
    serverSide: true,
    // Paging Setups
    paging: true,
    // Searching Setups
    searching: { regex: true },
    // Ajax Filter
    ajax: {
        url: "/Admin/LoadTable",
        type: "POST",           
        contentType: "application/json",
        dataType: "json",
        data: function (d) {
            d.districtid = 0;   //param 1
            d.schoolid = 1;    //param 2
            return JSON.stringify(d);
        }
    },
    // Columns Setups
    columns: [
        { data: "Id" },
        { data: "FirstName" },
        { data: "LastName" } ,
        { data: "Email" },
       // { data: "UserName" }
    ],
    // Column Definitions
    columnDefs: [
        { targets: "no-sort", orderable: false },
        { targets: "no-search", searchable: false },
        {
            targets: "trim",
            render: function (data, type, full, meta) {
                if (type === "display") {
                    data = strtrunc(data, 10);
                }

                return data;
            }
        },
        { targets: "date-type", type: "date-eu" },
        {
            targets: 10,
            data: null,
            defaultContent: "<a class='btn btn-link' role='button' href='#' onclick='edit(this)'>Edit</a>",
            orderable: false
        },
    ]
});

});

function strtrunc(str, num) {
if (str.length > num) {
return str.slice(0, num) + "...";
}
else {
return str;
}
}

function edit(rowContext) {
if (table) {
var data = table.row($(rowContext).parents("tr")).data();
alert("Example showing row edit with id: " + data["id"] + ", name: " + data["name"]);
}
}

Metadata

Metadata

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions