Использование таблиц с несколькими фильтрами в asp.net MVC - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь реализовать несколько фильтров в таблицах данных на asp.net, но при поиске значения моя таблица не обновляется.

Я последовал официальному примеру сайта, но он не сработал. Вот исходный код, который я использую.

JS на просмотр

$('#students tfoot th').each( function () {
                var title = $(this).text();
                if (title !== "") {
                    $(this).html('<input type="text" class="form-control form-control-sm" style="width: 100%" placeholder="' + title + '" />');
                } else {
                    $(this).html('<div class="text-center">-</div>');
                }
            } );

            tabela.columns().every( function () {
                var that = this;    
                $( 'input', this.header() ).on( 'keydown', function (ev) {
                    if (ev.keyCode == 13) { //only on enter keypress (code 13)
                        that
                            .search( this.value )
                            .draw();
                    }
                } );
            } );

ДЕЙСТВИЕ НА КОНТРОЛЛЕРЕ

[HttpPost]
        public JsonResult Listar2()
        {
            var search = Request.Form.GetValues("search[value]")?[0];

            var list = db.Students;

            if (!string.IsNullOrEmpty(search))
            {
                list = list.Where(m => m.name.ToLower().Contains(search.ToLower()) || m.class.ToLower().Contains(search.ToLower()));
            }

            var draw = Request.Form.GetValues("draw")?[0];
            var start = Request.Form.GetValues("start")?[0];
            var length = Request.Form.GetValues("length")?[0];

            var width = length != null ? Convert.ToInt32(length) : 0;
            var skip = start != null ? Convert.ToInt32(start) : 0;

            var totalRecords = list.Count();
            var resultFinal = list.Skip(skip).Take(width).ToList();

            return Json(new
            {
                data = resultFinal,
                draw,
                recordsFiltered = totalRecords,
                recordsTotal = totalRecords
            });
        }

1 Ответ

0 голосов
/ 08 ноября 2018

Я не знаю, чего вы хотите достичь. Официальный пример использует JavaScript для сортировки таблицы данных, которая уже вставлена ​​в HTML. Сначала вы должны загрузить все записи, передать их в представление, а затем этот скрипт должен отфильтровать эти записи

...