Неперехваченная ошибка типа: не удается прочитать свойство ‘автозаполнение’ неопределенного

#javascript #jquery #asp.net #jquery-datatables #autofill

#javascript #jquery #asp.net #таблицы данных #автозаполнение

Вопрос:

Я использую jquery datatables 1.10 с ASP.NET 4.5. Код работает без проблем при отладке. Когда я запускаю его, он не заполняет данные в таблице и оставляет пустой набор данных. Эта ошибка обнаружилась в FireBug.

Код:

         $('#dtGroups').dataTable({
            "oLanguage": {
                "sZeroRecords": "No records to display",
                "sSearch": "Search "
            },
            "aLengthMenu": [[25, 50, 100, 150, 250, 500, -1], [25, 50, 100, 150, 250, 500, "All"]],
            "iDisplayLength": 25,
            "bSortClasses": false,
            "bStateSave": false,
            "bPaginate": true,
            "bAutoWidth": false,
            "bProcessing": true,
            "bServerSide": true,
            "bDestroy": true,
            "bJQueryUI": false,
            "sAjaxSource": "<%= ResolveUrl("~/Handler/GetData") %>",
            "sPaginationType": "full_numbers",
            "bDeferRender": true,
            "fnServerParams": function (aoData) {

            },
            "aoColumnDefs": [
                {
                    "bVisible": false,
                    "aTargets": [0]                 

                },
                {
                    "aTargets": [1],  
                    "mData": null,
                    "mRender": function (data, type, row) {                            
                        var enc = encodeURI(row[1]);
                        return "<a href='SomePage.aspx?qs=" enc "'>"   row[1]   "</a>";
                    }

                }
            ],                
            "fnServerData": function (sSource, aoData, fnCallback) {
                var jsonAOData = JSON.stringify(aoData);
                $.ajax({
                    "dataType": 'json',
                    "contentType": "application/json; charset=utf-8",
                    "type": "POST",
                    "url": sSource,
                    "data": "{ jsonAOData : '"   jsonAOData   "' }",
                    "success":
                                function (result) {
                                    var json = jQuery.parseJSON(result.d);
                                    console.log(json);
                                    fnCallback(JSON.parse(result.d))
                                },
                    "error":
                        function (XMLHttpRequest, textStatus, errorThrown) {
                            alert(XMLHttpRequest   ": Error: "   XMLHttpRequest.responseText   ", "   textStatus   ": "   errorThrown);
                        }
                });
            }
    });
  

Любая помощь была бы оценена.

Комментарии:

1. правильно ли серверная сторона получает jsonAOData? Я не понимаю, почему вы JSON.stringify(aoData) а затем монтируете строку вручную после того, как в "data": "{ jsonAOData : '" jsonAOData "' }"

2. ДА. Серверная сторона получает jsonAOData правильно. Это работает при отладке. Однако при запуске без отладки происходит сбой.

3. итак, при запуске он все еще получает jsonAOData правильно?

4. ДА. Он по-прежнему получает jsonAOData правильно. И теперь я получаю новую ошибку «Ошибка типа: $.fn.DataTable не определен».

Ответ №1:

Пожалуйста, ознакомьтесь с документацией для опцийhttp://datatables.net/reference/option /

Также прочитайте, как преобразовать ваши параметры в таблицы данных 1.10.https://datatables.net/upgrade/1.10-convert

fnServerData это не тот параметр, который принимает datatables.