Почему dataTable возвращает пустую запись без данных при использовании обработки на стороне сервера? - PullRequest
0 голосов
/ 13 февраля 2020

введите описание изображения здесь Мне нужна помощь здесь, и я застрял почти на полдня, проблема в том, что я не возвращаю какую-либо запись из моей таблицы данных. Что именно мне не хватает? Да, я звоню в правильную таблицу и у меня есть данные. Вот моя логика c ниже, она имеет функцию getList и empList не возвращает никакого значения. Пожалуйста, помогите товарищам решить эту проблему, спасибо; Во время отладки серверная часть видит некоторую ссылку с данными, просто они не заполняются пользователем как читаемый файл.

введите описание изображения здесь

// Model

 public class EventsManagementTb
    {
        public int TrainingID { get; set; }

        public string TrainingType { get; set; }
        public string TrainingDescription { get; set; }

        public int Price { get; set; }

        public string Venue { get; set; }

        public string Facilitator { get; set; }

        public string WhoAttend { get; set; }

        public string RSVP { get; set; }
    }

    // Controller

      [HttpPost]
            public ActionResult GetData()
            {
                //Server side Parameter.
                JsonResult result = new JsonResult();

                try
                {
                    // Initilization
                    string search = Request.Form.GetValues("search[value]")[0];
                    string draw = Request.Form.GetValues("draw")[0];
                    string order = Request.Form.GetValues("order[0][column]")[0];
                    string orderDir = Request.Form.GetValues("order[0][dir]")[0];
                    int startRec = Convert.ToInt32(Request.Form.GetValues("start")[0]);
                    int pageSize = Convert.ToInt32(Request.Form.GetValues("length")[0]);


                    // Loading.
                    List<EventsManagementTb> data = this.LoadData();

                    // Total record count.

                    int totalRecords = data.Count;

                    // Verification.
                    if (!string.IsNullOrEmpty(search) && !string.IsNullOrWhiteSpace(search))
                    {
                        // Apply search

                        data = data.Where(l => l.TrainingID.ToString().ToLower().Contains(search.ToLower())
                        || l.TrainingType.ToLower().Contains(search.ToLower())
                        || l.TrainingDescription.ToLower().Contains(search.ToLower())
                        || l.Price.ToString().ToLower().Contains(search.ToLower())
                        || l.Venue.ToLower().Contains(search.ToLower())
                        || l.Facilitator.ToLower().Contains(search.ToLower())
                        || l.WhoAttend.ToLower().Contains(search.ToLower())
                        || l.RSVP.ToLower().Contains(search.ToLower())).ToList();
                    }

                    // Sorting
                    data = this.SortByColumnWithOrder(order, orderDir, data);

                    // Filter record data.
                    int recFilter = data.Count;

                    // Apply pagination.

                    data = data.Skip(startRec).Take(pageSize).ToList();

                    result = this.Json(new { draw = Convert.ToInt32(draw), recordsTotal = totalRecords, recordsFiltered = recFilter, data = data }, JsonRequestBehavior.AllowGet);


                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
                return result;

            }



            private List<EventsManagementTb> SortByColumnWithOrder(string order, string orderDir, List<EventsManagementTb> data)
            {
                // Initialization.
                List<EventsManagementTb> lst = new List<EventsManagementTb>();

                try
                {
                    // Sorting
                    switch (order)
                    {
                        case "0":

                            lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.TrainingID).ToList()
                                                : data.OrderBy(l => l.TrainingID).ToList();
                            break;

                        case "1":
                            lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.TrainingType).ToList()
                                        : data.OrderBy(l => l.TrainingType).ToList();
                            break;

                        case "2":
                            lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.TrainingDescription).ToList()
                                : data.OrderBy(l => l.TrainingDescription).ToList();
                            break;

                        case "3":
                            lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.Price).ToList()
                                : data.OrderBy(l => l.Price).ToList();
                            break;


                        case "4":

                            lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.Venue).ToList()
                                : data.OrderBy(l => l.Venue).ToList();
                            break;

                        case "5":

                            lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.Facilitator).ToList()
                                : data.OrderBy(l => l.Facilitator).ToList();
                            break;

                        case "6":

                            lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.WhoAttend).ToList()
                                : data.OrderBy(l => l.WhoAttend).ToList();
                            break;

                        default:
                            lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.RSVP).ToList()
                                : data.OrderBy(l => l.RSVP).ToList();

                            break;

                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }


                return lst;
            }



            private List<EventsManagementTb> LoadData()
            {
                List<EventsManagementTb> lst = new List<EventsManagementTb>();

                try
                {
                    string line = string.Empty;
                    string srcFilePath = "content/files/EventsManagementTb.txt";
                    var rootPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
                    var fullPath = Path.Combine(rootPath, srcFilePath);
                    string filePath = new Uri(fullPath).LocalPath;
                    StreamReader sr = new StreamReader(new FileStream(filePath, FileMode.Open, FileAccess.Read));

                    //Read file

                    while ((line = sr.ReadLine()) != null)
                    {
                        EventsManagementTb tb = new EventsManagementTb();
                        string[] info = line.Split(',');

                        // Setting
                        tb.TrainingID = Convert.ToInt32(info[0].ToString());
                        tb.TrainingType = info[1].ToString();
                        tb.TrainingDescription = info[2].ToString();
                        tb.Price = Convert.ToInt32(info[3].ToString());
                        tb.Venue = info[4].ToString();
                        tb.Facilitator = info[5].ToString();
                        tb.WhoAttend = info[6].ToString();
                        tb.RSVP = info[7].ToString();

                        // Adding
                        lst.Add(tb);
                    }
                    sr.Dispose();
                    sr.Close();

                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }

                return lst;
            }

        }
    // View cshtml
     <script>

            $(document).ready(function () {

                $("#EventsManagementsTable").DataTable({

                    "columnDefs": [
                    { "width": "5%", "targets": [0] }, 
                    { "className": "text-center custom-middle-align" ,"targets":[0, 1, 2, 3, 4, 5, 6] },
                    ],
                    "language":{
                        "processing": "<div class = 'overlay custom-loader-background'><i class= 'fa fa-cog fa-spin custom-loader-color'></i></idv>"
                },
                    "serverSide":"true",
                    "processing":"true",
                    "ajax": {
                        "url": "/Dashboard/GetData",
                        "type": "POST",
                        "datatype":"json"
                    },
                       "columns": [
                        {"data":"TrainingID"},
                        {"data": "TrainingType"},
                        { "data": "TrainingDescription"},
                        { "data": "Price"},
                        { "data": "Venue"},
                        { "data": "Facilitator"},
                        { "data": "WhoAttend"},
                        {"data": "RSVP"},
                    ]


                });

            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...