Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 调用函数返回';DataTables警告:表id=tblDataTable-JSON响应无效;_Jquery_Json_Web Services_Asp.net Ajax_Serverside Datatable - Fatal编程技术网

Jquery 调用函数返回';DataTables警告:表id=tblDataTable-JSON响应无效;

Jquery 调用函数返回';DataTables警告:表id=tblDataTable-JSON响应无效;,jquery,json,web-services,asp.net-ajax,serverside-datatable,Jquery,Json,Web Services,Asp.net Ajax,Serverside Datatable,我有一个类DataTableResponse.vb,它具有以下结构: Public Class DataTableResponse Public draw As Integer Public recordsTotal As Integer Public recordsFiltered As Integer Public data As List(Of Restaurant) End Class 在我的aspx页面中,我的服务器端数据表使用存储过程(met

我有一个类
DataTableResponse.vb
,它具有以下结构:

Public Class DataTableResponse
     Public draw As Integer
     Public recordsTotal As Integer
     Public recordsFiltered As Integer
     Public data As List(Of Restaurant)
End Class
在我的aspx页面中,我的服务器端数据表使用存储过程(method.GetData包含5个参数)从db中获取餐厅列表,以及一些其他数据表属性,如ajaxDraw、OffsetValue、PagingSize、SearchBy、sortcolumn、sortDirection,这些属性来自用户选择的aspx页面

        $(document).ready(function () {
            //Once the document is ready call Bind DataTable
            BindDataTable();
        });

        function BindDataTable() {
            var mytable = $('#tblDataTable').DataTable({
                "processing": true,
                "serverSide": true,
                //"dataSrc": "",
                "ajax": {
                    url: "adminrestaurants.aspx/GetDataForDataTable", type: "post"
                },
                "columns": [
                    {
                        "data": "Title",
                    },
                    {
                        "data": "colorActive",
                        "render": function (data, type, row) { return "<i class='fa fa-fw fa-circle' style= color:" + data + "></i>" }
                    },
                    {
                        data: null,
                        className: "center",
                        defaultContent: '<a href="" class="edit btn btn-link">Edit</a>'
                    },
                    {
                        data: null,
                        className: "center",
                        defaultContent: '<a href="" class="view btn btn-link">View</a>'
                    },
                    {
                        data: null,
                        className: "center",
                        defaultContent: '<a href="" class="MenuImage btn btn-link"><i class="fas fa-utensils"></i></a>'
                    },
                    {
                        data: null,
                        className: "center",
                        defaultContent: '<a href="" class="RestImage btn btn-link"><i class="fa fa-image"></i></a>'
                    },
                    {
                        data: null,
                        className: "center",
                        defaultContent: '<a id="btn-delete" href="" class="delete btn btn-link"><i class="fa fa-trash"></i></a>'
                    },
                ],
                'columnDefs': [{
                    'targets': [2, 3, 4, 5, 6], /* column index */
                    'orderable': false, /* true or false */
                }],
                rowId: 'Id',

                "initComplete": function (settings, json) {
                    addDiv();
                },

            });
$(文档).ready(函数(){
//文档准备就绪后,调用Bind DataTable
BindDataTable();
});
函数BindDataTable(){
var mytable=$('#tblDataTable').DataTable({
“处理”:对,
“服务器端”:正确,
//“dataSrc”:“,
“ajax”:{
url:“adminrestaurants.aspx/GetDataForDataTable”,类型:“post”
},
“栏目”:[
{
“数据”:“标题”,
},
{
“数据”:“colorActive”,
“render”:函数(数据、类型、行){return'}
},
{
数据:空,
类名:“中心”,
默认内容:“”
},
{
数据:空,
类名:“中心”,
默认内容:“”
},
{
数据:空,
类名:“中心”,
默认内容:“”
},
{
数据:空,
类名:“中心”,
默认内容:“”
},
{
数据:空,
类名:“中心”,
默认内容:“”
},
],
“columnDefs”:[{
“目标”:[2,3,4,5,6],/*列索引*/
“医嘱内容”:false、/*true或false*/
}],
rowId:'Id',
“initComplete”:函数(设置,json){
addDiv();
},
});
当我调用web服务(asmx)类时,一切正常,但我决定将web服务转换为私有函数,如下所示:

<System.Web.Services.WebMethod()>
Public Shared Function GetDataForDataTable() As String
    Dim method As New methods
    Dim context As HttpContext = HttpContext.Current
    context.Response.ContentType = "text/plain"
    Dim columns As List(Of String) = New List(Of String)()
    columns.Add("Title")
    columns.Add("IsActive")
    columns.Add("Edit")
    columns.Add("View")
    columns.Add("RestImages")
    columns.Add("MenuImages")
    columns.Add("delete")
    Dim ajaxDraw As Int32 = Convert.ToInt32(context.Request.Form("draw"))
    Dim OffsetValue As Int32 = Convert.ToInt32(context.Request.Form("start"))
    Dim PagingSize As Int32 = Convert.ToInt32(context.Request.Form("length"))
    Dim searchby As String = context.Request.Form("search[value]")
    Dim sortColumn As String = context.Request.Form("order[0][column]")
    sortColumn = "r." & columns(Convert.ToInt32(sortColumn))
    Dim sortDirection As String = context.Request.Form("order[0][dir]")
    Dim dt As DataTable = method.GetData(sortColumn, sortDirection, OffsetValue, PagingSize, searchby)
    Dim recordTotal As Int32 = 0
    Dim restaurants As List(Of Restaurant) = New List(Of Restaurant)()

    If dt IsNot Nothing Then

        For i As Integer = 0 To dt.Rows.Count - 1
            Dim restaurant As Restaurant = New Restaurant()
            restaurant.Id = If(Convert.IsDBNull(dt.Rows(i)("RID")), Nothing, Convert.ToInt32(dt.Rows(i)("RID")))
            restaurant.Title = If(Convert.IsDBNull(dt.Rows(i)("Rtitle")), Nothing, Convert.ToString(dt.Rows(i)("Rtitle")))
            restaurant.IsActive = If(Convert.IsDBNull(dt.Rows(i)("Ractive")), Nothing, Convert.ToInt32(dt.Rows(i)("Ractive")))
            restaurant.colorActive = dt.Rows(i)("activeColor")
            restaurants.Add(restaurant)
        Next

        recordTotal = If(dt.Rows.Count > 0, Convert.ToInt32(dt.Rows(0)("FilterTotalCount")), 0)
    End If

    Dim recordFiltered As Int32 = recordTotal
    Dim objDataTableResponse As DataTableResponse = New DataTableResponse() With {
        .draw = ajaxDraw,
        .recordsFiltered = recordTotal,
        .recordsTotal = recordTotal,
        .data = restaurants
    }

    Return Newtonsoft.Json.JsonConvert.SerializeObject(objDataTableResponse.ToString)
End Function

作为字符串的公共共享函数GetDataForDataTable()
作为新方法的Dim方法
Dim context作为HttpContext=HttpContext.Current
context.Response.ContentType=“text/plain”
按列表(字符串的)调整列=新列表(字符串的)()
列。添加(“标题”)
列。添加(“IsActive”)
列。添加(“编辑”)
列。添加(“视图”)
columns.Add(“RestImages”)
列。添加(“菜单图像”)
列。添加(“删除”)
Dim ajaxDraw As Int32=Convert.ToInt32(context.Request.Form(“draw”))
Dim OffsetValue As Int32=Convert.ToInt32(context.Request.Form(“start”))
Dim PagingSize As Int32=Convert.ToInt32(context.Request.Form(“长度”))
Dim searchby As String=context.Request.Form(“搜索[值]”)
Dim sortColumn As String=context.Request.Form(“订单[0][列]”)
sortColumn=“r.”和列(转换为32(sortColumn))
Dim sortDirection As String=context.Request.Form(“订单[0][dir]”)
Dim dt As DataTable=method.GetData(sortColumn、sortDirection、OffsetValue、PagingSize、searchby)
Dim记录总计为Int32=0
作为(餐厅)名单的暗淡餐厅=新的(餐厅)名单()
如果dt不是什么,那么
对于i,整数=0到dt.Rows.Count-1
Dim restaurant As restaurant=新餐厅()
restaurant.Id=If(Convert.IsDBNull(dt.Rows(i)(“RID”)),Nothing,Convert.ToInt32(dt.Rows(i)(“RID”))
restaurant.Title=If(Convert.IsDBNull(dt.Rows(i)(“Rtitle”)),Nothing,Convert.ToString(dt.Rows(i)(“Rtitle”))
restaurant.IsActive=If(Convert.IsDBNull(dt.Rows(i)(“Ractive”)),Nothing,Convert.ToInt32(dt.Rows(i)(“Ractive”))
restaurant.colorActive=dt.Rows(i)(“activeColor”)
餐厅。添加(餐厅)
下一个
recordTotal=If(dt.Rows.Count>0,将.to转换为32(dt.Rows(0)(“FilterTotalCount”)),0)
如果结束
Dim recordFiltered为Int32=recordTotal
Dim objDataTableResponse As DataTableResponse=新的DataTableResponse(),带有{
.draw=ajaxDraw,
.recordsFiltered=recordTotal,
.recordsTotal=recordTotal,
.数据=餐厅
}
返回Newtonsoft.Json.JsonConvert.SerializeObject(objDataTableResponse.ToString)
端函数
页面加载时出现以下错误->'**DataTables警告:table id=tblDataTable-JSON响应无效。有关此错误的更多信息,请参阅

非常感谢您的帮助