Предупреждение DataTables: table id = tblList - запрошенный неизвестный параметр. Дополнительную информацию об этой ошибке см. На http://datatables.net/tn/4

C#

[WebMethod]
public string loadLeaveRequests(int empID, int StatID, int isOwn)
{
    List<lstLeaveRequest> mylist = new List<lstLeaveRequest>();
    using (SqlConnection connection = new SqlConnection(connectionString()))
    {
        connection.Open();
        SqlCommand cmd = new SqlCommand("spLoadLeaveRequest", connection);
        cmd.Parameters.Add("@empID", SqlDbType.Int).Value = empID;
        cmd.Parameters.Add("@Stat", SqlDbType.Int).Value = StatID;
        cmd.Parameters.Add("@Own", SqlDbType.Int).Value = isOwn;
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandTimeout = 0;
        SqlDataReader dr = cmd.ExecuteReader();

        while (dr.Read())
        {
            mylist.Add(new lstLeaveRequest
            {
                reqID = dr["reqID"].ToString(),
                dateFiled = dr["save_date"].ToString(),
                fname = dr["first_name"].ToString(),
                leaveType = dr["leaveAlias"].ToString(),
                dateFrom = dr["DateFrom"].ToString(),
                fromWhen = dr["FromWhen"].ToString(),
                dateTo = dr["DateTo"].ToString(),
                toWhen = dr["Towhen"].ToString(),
                reason = dr["Reason"].ToString(),
                remarks = dr["Remarks"].ToString(),
                sStatus = dr["sStatus"].ToString(),
                dateApprove = dr["approve_date"].ToString(),
                totalDays = dr["totalDays"].ToString(),
                grpID = dr["groupID"].ToString(),
            });
        }
        dr.Close();
        connection.Close();
    }
    JavaScriptSerializer jss = new JavaScriptSerializer();
    string jsn = jss.Serialize(mylist);
    return jsn;
}

JavaScript

function loadLeaveRequest(isOwn) {

    if ($('#tblList').hasClass('dataTable')) {
        $('#tblList').dataTable().fnDestroy();
        $('#tblList').removeClass('dataTable');
    }

    var xdata = "{'empID':'" + STATUS.USER_ID   //sa pgfifilter ng group kailang grpID lang ang makuha sa DB
                + "','StatID':'" + $('#cboStatus option:selected').val() //hindi na kailangan gumamit ng stored Procedure.
                + "','isOwn':'" + isOwn                                     //gumawa ng CommandType.Text sa bagong SELECT Clause
            + "'}";

    $.ajax({
        type: 'POST',
        url: '../WebService/wsLeaveRequest.asmx/loadLeaveRequests',
        dataType: 'json',
        data: xdata,
        contentType: 'application/json; charset=utf-8',
        success: function (response) {
            $('#tbodyList').empty();
            var cells = eval("(" + response.d + ")");
            for (var i = 0; i < cells.length; i++) {

                var txtFromWhen;
                var txtToWhen;
                var disable = '';

                if (cells[i].fromWhen == 2) {
                    txtFromWhen = "(AM)";
                }
                else if (cells[i].fromWhen == 3) {
                    txtFromWhen = "(PM)";
                }
                else {
                    txtFromWhen = "";
                }

                if (cells[i].toWhen == 2) {
                    txtToWhen = "(AM)";
                }
                else if (cells[i].fromWhen == 3) {
                    txtToWhen = "(PM)";
                }
                else {
                    txtToWhen = "";
                }


                var sStat; //Convertion of int to String
                if (cells[i].sStatus == 1) {
                    sStat = "Approved";
                    disable = '';
                }
                else if (cells[i].sStatus == 2) {
                    sStat = "Denied";
                    disable = '';
                }
                else if (cells[i].sStatus == 3) {
                    sStat = "Cancelled";
                    disable = 'disabled'
                }
                else {
                    sStat = "Pending";
                    disable = '';
                }

                $('#tbodyList').append('<tr>'
                    + '<td style = "font-size:11px; text-align:center;"><input type = "checkbox" ' + disable + '></td>'
                    + '<td style = "font-size:11px; text-align:center;">' + cells[i].reqID + '</td>'
                    + '<td style = "font-size:11px; text-align:center;">' + cells[i].fname + '</td>'
                    + '<td style = "font-size:11px; text-align:center;">' + cells[i].leaveType + '</td>'
                    + '<td style = "font-size:11px; text-align:center;">' + cells[i].dateFrom.substring(0, 10) + txtFromWhen + '~' + '<br>' + cells[i].dateTo.substring(0, 10) + txtToWhen + '</td>'
                    + '<td style = "font-size:11px; text-align:center;">' + cells[i].totalDays + '</td>'
                    + '<td style = "font-size:11px; text-align:center; word-wrap: break-all;">' + cells[i].reason + '</td>'
                    + '<td style = "font-size:11px; text-align:center; word-wrap: break-word;">' + cells[i].remarks + '</td>'
                    + '<td style = "font-size:11px;">' + cells[i].dateFiled + '</td>'
                    + '<td style = "font-size:11px; text-align:center;">' + sStat + '</td>'
                    + '<td style = "font-size:11px; text-align:center;">' + cells[i].dateApprove + '</td>'
                    + '<td style = "font-size:11px; text-align:center;">' + cells[i].grpID+ '</td>'

                + '</tr>');
            }
        },
        error: function (error) {
            console.info(error);
        },
        complete: function () {
            $('#tblList').dataTable({

                "order": [],
                "destroy": true,
                "columnDefs": [{
                    "targets": 'no-sort',
                    "orderable": false,
                }]
            }).end();
            $('#tblList').css('width', '100%');
        }
    });
}

HTML

<table id = "tblList" class = "table border bordered hovered">
    <thead>
        <tr>
            <td style = "font-size:10px; text-align:center;"><input type = "checkbox" id = "cbAll"/></td>
            <td style = "font-size:10px; text-align:center;">Request No.</td>
            <td style = "font-size:10px; text-align:center;">Employee</td>                            
            <td style = "font-size:10px; text-align:center;">Leave Type</td>
            <!--<td style = "font-size:10px; text-align:center;" hidden>Group ID</td>-->
            <td style = "font-size:10px; text-align:center;">Date of Leave</td>
            <td style = "font-size:10px; text-align:center;">Total Days</td>
            <td style = "font-size:10px; text-align:center;">Reason</td>
            <td style = "font-size:10px; text-align:center;">Remarks</td>
            <td style = "font-size:10px; text-align:center;">Date Filed</td>
            <td style = "font-size:10px; text-align:center;">Status</td>
            <td style = "font-size:10px; text-align:center;">Date Approved/Cancelled</td>

        </tr>
    </thead>
    <tbody id = "tbodyList">

    </tbody>
</table>

Хранимая процедура

CREATE PROCEDURE [dbo].[spLoadLeaveRequest]
    @empID INT = 101, 
    @Stat INT = 99,
    @Own INT = 0
AS
BEGIN

    DECLARE @SqlStr VARCHAR(1000)
    DECLARE @SqlWhere VARCHAR(500)

    SET @SqlStr = 'select a.reqID, a.save_date, b.first_name, c.leaveAlias, d.groupID, CONVERT(VARCHAR(10),a.DateFrom,101) DateFrom, a.FromWhen, 
                    CONVERT(VARCHAR(10),a.DateTo,101) DateTo, a.ToWhen, a.totalDays, a.Reason,a.Remarks, a.sStatus, 
                    a.approve_date, a.sStatusAdmin,a.approve_dateAdmin
                from tblLeaveRequest a 
                    join userinfo b on a.Save_User = b.empID
                    join tblLeaveType c on a.typeOfLeave=c.leaveID
                    join tblGroup d on b.groupNo = d.groupID
                WHERE YEAR(a.save_date) = YEAR(GETDATE()) '

    IF (SELECT userType FROM userinfo WHERE empID = @empID) = 1
        BEGIN
            SET @SqlWhere = ' AND b.empID = ' + CAST(@empID AS VARCHAR) + '' 
        END
    ELSE IF (SELECT userType FROM userinfo WHERE empID = @empID) = 2
        BEGIN
            IF  @Own = 1
                BEGIN
                    SET @SqlWhere = ' AND b.empID = ' + CAST(@empID AS VARCHAR) + '' 
                END
            ELSE
                BEGIN
                    SET @SqlWhere = ' AND b.groupNo = ' + CAST((SELECT groupNo FROM userinfo WHERE empID = @empID) AS VARCHAR) + ' AND b.empID <> ' + CAST(@empID AS VARCHAR) + '' 
                END
        END
    ELSE IF (SELECT userType FROM userinfo WHERE empID = @empID) = 3
        BEGIN
            IF  @Own = 1
                BEGIN
                    SET @SqlWhere = ' AND b.empID = ' + CAST(@empID AS VARCHAR) + '' 
                END
            ELSE
                BEGIN
                    SET @SqlWhere = ' AND b.empID <> ' + CAST(@empID AS VARCHAR) + '' 
                END
        END

    IF @Stat = 99
        BEGIN
            SET @SqlWhere = @SqlWhere
        END
    ELSE
        BEGIN
            SET @SqlWhere = @SqlWhere + ' AND a.sStatus=' + CAST(@Stat AS VARCHAR) + '' 
        END


    EXEC(@SqlStr + @SqlWhere + ' ORDER BY a.reqID DESC')

END

Может ли кто-нибудь помочь мне с этим. Мой код не возвращает все значения в таблице данных.

может кто-нибудь найти ошибку в моем коде? он имеет вывод, но не все поля базы данных были возвращены, последний элемент "grpID" не отображается в таблице.

Я знаю, что у кого-то есть возможность решить эту проблему, так что, пожалуйста, помогите мне, ребята ...

Макет столбца заголовка и количество столбцов не соответствуют модели данных, возвращаемой сервером.

Randy Casburn 06.04.2018 04:54

Да, это так. Я удалил колонку с комментариями. теперь они равны, но имеют одинаковый статус вывода.

Alexis Villar 06.04.2018 05:59

Таким образом, Да, это так означает, что 12 столбцов заголовка (без комментариев) равны 13 столбцам данных; понятно. В любом случае, в чем разница между groupID и grpId?

Randy Casburn 06.04.2018 06:11

groupID - это переменная, которая будет улавливать значение grpID, которое является полем базы данных.

Alexis Villar 06.04.2018 07:09

Вы помещаете их оба в свой tbodyList в виде столбцов. Один в качестве первого столбца, а другой в качестве последнего столбца. Но вам кажется, что вы заинтересованы только в защите плохо сконструированного кода, чем в моей помощи. Удачи.

Randy Casburn 06.04.2018 07:22

Спасибо, сэр. :) Уже исправил :) Спасибо за Время: D God Bless

Alexis Villar 06.04.2018 09:24
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
263
0

Другие вопросы по теме