Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >jQuery数据表未填充

jQuery数据表未填充
EN

Stack Overflow用户
提问于 2018-01-05 11:35:21
回答 2查看 618关注 0票数 2

我有一个jQuery数据表,通过获取数据。我可以看到返回的数据是正确的格式,但表没有显示数据。

我有一个“提交”按钮,点击获取数据并重新绘制表格。我在"success“函数中放置了一个断点,可以看到json数据。

Javascript位于aspx页面和数据表定义之上(我需要这个js函数,因为上面的搜索文本框datatable在页面重新加载时不断消失)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    $(function () {
        bindDataTable(); // bind data table on first page load
        // bind data table on every UpdatePanel refresh
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(bindDataTable);
    });

    function bindDataTable() {
        var FacCertDT = $('#tblFacCert').DataTable({
            'bDestroy': true,
            "bStateSave": true,
            dom: 'lfrtip',
            "fnStateSave": function (oSettings, oData) {
                localStorage.setItem('tblFacCert', JSON.stringify(oData));
            },
            "fnStateLoad": function (oSettings) {
                return JSON.parse(localStorage.getItem('tblFacCert'));
            }
        });
    }
</script>

<div runat="server" id="divFacCert" ClientIDMode="Static" style="padding:15px">
    <div class="table-responsive">
        <table id="tblFacCert" class="table table-striped table-bordered table-hover">
            <thead>
                <tr class="info">
                    <th>Area</th>
                    <th>District</th>
                    <th>MPOO </th>
                    <th>Facility</th>
                    <th>Type</th>
                    <th>Sub-Type</th>
                    <th>Response Due Date</th>
                    <th>Completed?</th>
                    <th>Completed By</th>
                    <th>Completed On</th>
                </tr>
            </thead>
        </table>
    </div>
</div>

页面底部的Javascript:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    Table = $("#tblFacCert").DataTable({
        data: [],
        "aoColumns": [
            {
                "mData": "Area"
            }, {
                "mData": "District"
            }, {
                "mData": "MPOO"
            }, {
                "mData": "FacilityName"
            }, {
                "mData": "FacilityType"
            }, {
                "mData": "FacilitySubType"
            }, {
                "mData": "ResponseDueDate"
            }, {
                "mData": "Completed"
            }, {
                "mData": "UserName"
            }, {
                "mData": "ResponseDate"
            }
        ],
        "pageLength": 15,
        "deferRender": true,
        rowCallback: function (row, data) { },
        filter: false,
        info: false,
        ordering: false,
        processing: true,
        retrieve: true
    });

    $("#btnSubmit").on("click", function (event) {
        $.ajax({
            type: "POST",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            url: "../services/easg.asmx/GetComplianceReportData",
            cache: false,
            contentType: "application/json; charset=utf-8",
            data: "{ 'startDate': '" + $("#tbStartDate").val() + "', 'certID': '" + $('#ddlCertificate').val() + "'}"
        }).done(function (result) {debugger
            Table.clear().draw();
            Table.rows.add(result).draw();
            }).fail(function (jqXHR, textStatus, errorThrown) {
                alert(textStatus + ' - ' + errorThrown);
        });
    })
</script>

这就是web服务API的样子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
namespace FacCert
{
    /// <summary>
    /// Summary description for easg
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]

    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    [System.Web.Script.Services.ScriptService]
    public class easg : System.Web.Services.WebService
    {

        [WebMethod]
        [ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]

        public string GetComplianceReportData(string startDate, string certID)
        {
            DateTime dtStartDate = Convert.ToDateTime(startDate);
            int iCertItemID = int.Parse(certID);
            DataTable dt = FacCompliance.GetFacCompliances(dtStartDate, iCertItemID);
            string JSONresult;
            JSONresult = JsonConvert.SerializeObject(dt);
            return JSONresult;
        }
    }
}

这是我在“on(”click“)”中检查它时的数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[
    {
        "Area":"CAPITAL METRO (K)",
        "District":"NORTHERN VIRGINIA",
        "MPOO":"Plant",
        "FacilityName":"DULLES VA P&DC",
        "FacilityType":"Network Operations",
        "FacilitySubType":"P&DC",
        "ResponseDueDate":"2017-12-20T00:00:00",
        "ResponseDate":"2017-12-30T17:57:35.353",
        "UserACEID":"XXXXXX",
        "UserName":"John Doe",
        "Completed":"Yes",
        "AreaID":11,
        "DistrictID":58,
        "FacID":2261,
        "FacComplianceID":1
    },{
        "Area":"CAPITAL METRO (K)",
        "District":"NORTHERN VIRGINIA",
        "MPOO":"Plant",
        "FacilityName":"NORTHERN VA P&DC",
        "FacilityType":"Network Operations",
        "FacilitySubType":"P&DC",
        "ResponseDueDate":"2017-12-20T00:00:00",
        "ResponseDate":"2017-12-30T18:23:10.86",
        "UserACEID":"XXXXXX",
        "UserName":"John Doe",
        "Completed":"Yes",
        "AreaID":11,
        "DistrictID":58,
        "FacID":2262,
        "FacComplianceID":4
    }
]

我已经搜索并尝试了所有的建议,但似乎什么也解决不了问题。我希望这里有人能看到我搞砸的地方。

API返回了几个列,我在数据表中没有包含这些列(例如AreaID、DistrictID、.)。

更新:

如果我用我在post中列出的实际json数组替换了Table.rows.add(结果).draw()中的变量“结果”,那么它将显示数据。我通过放置一个断点并检查“结果”的值来获得json数据,所以我不知道为什么当我使用实际的json数据时,而不是当我传递它“结果”时,它会工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-05 12:01:14

在Ajax done方法中替换这一行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Table.rows.add(JSON.parse(result.d)).draw();

编辑如果您正在使用update面板,您可以用它绑定js方法,那么您的更改反映。将按钮以函数形式提交代码,并将方法名设置为参数。我希望这是工作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script type="text/javascript">
  Sys.WebForms.PageRequestManager.getInstance().add_endRequest(YourMethod);
    </script>
票数 1
EN

Stack Overflow用户

发布于 2018-01-12 06:20:00

在这件事上花了很多时间后,我想出了问题的所在。当我将实际的json数据传递给Table.rows.add()时,会显示数据。所以我知道我传递的“结果”参数有问题。当我查看Chrome返回的回复时,我注意到它添加了XML标记:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<string xmlns="http://tempuri.org/">
[
    {
        "Area":"CAPITAL METRO (K)",
        "District":"NORTHERN VIRGINIA",
        ....
    }
]
</string>

这就是为什么原始数据会显示,而不是当我将“结果”参数传递给它时。

修复方法是更改按钮单击功能,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$("#btnSubmit").on("click", function (event) {
    $.ajax({
        type: "POST",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "../services/easg.asmx/GetComplianceReportData",
        cache: false,
        data: "{ 'startDate': '" + $("#tbStartDate").val() + "', 'certID': '" + $('#ddlCertificate').val() + "'}"
    }).done(function (result) {
        Table.clear().draw();
        jResult = JSON.parse(result.d); <--- This is the fix
        Table.rows.add(jResult).draw();
    }).fail(function (jqXHR, textStatus, errorThrown) {
        alert(textStatus + ' - ' + errorThrown);
    });
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48120180

复制
相关文章
在Java EE7框架中使用MongoDB
中心点创建应用程序的执行在企业环境中,应用程序必须安全、便携和高可用性。它还必须能够与不同的系统交互,但可控的从一个最好的位置。JEE7合并是一个重要的框架的所有特性,它的工作原理很无缝地与MongoDB。本文在创建一个Web应用程序使用MongoDB的手放在存储。 这种安排是…… 这是一个简单的、精益的CRUD应用程序,或者它的一部分,使用一些EJB和JSF JEE7的中坚分子。这个想法是为了使复位候选人在MongoDB,搜索需要的候选人根据技能人,也可以从数据库中删除一个特定候选人。 你需要什么… JE
用户1289394
2018/02/27
1.1K0
在Java EE7框架中使用MongoDB
dataTable自定义搜索框位置
dataTable 的搜索框 请参阅dataTable dom:http://www.datatables.club/reference/option/dom.html
全栈程序员站长
2022/09/14
8780
dataTable自定义搜索框位置
python 编辑框 text
print('PP4E scrolledtext') from tkinter import *
用户5760343
2022/05/13
8910
python 编辑框 text
JAVA JPA - 示例用法
JPA(Java Persistence API)是JSR(Java Specification Requests)的一部分,定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate、TopLink等。 下面的示例程序是在jboss quickStart的基础上修改而来的 1、实体Bean:Member类 1 package org.jboss.as.quickstart.hibernate4.model; 2 3 import java.io.Serializable; 4
菩提树下的杨过
2018/01/24
1.6K0
JAVA JPA - 示例用法
多个input框自动切换焦点
使用Javascript可以从多个方面增强表单字段的易用性。其中,最常见的一种方式就是在用户填写完当前字段时,自动将焦点切换到下一个字段,必须知道用户已经输入了既定长度的数据(例如电话号码),输入一个后焦点切换到下一个输入框
tianyawhl
2020/11/12
3.4K0
vim同时编辑多个文件
# 1.如果在终端中开没有打开vim,可以: 横向分割显示: vim -o filename1 filename2 纵向分割显示: vim -O filename1 filename2 # 2.如果已经用vim打开了一个文件,想要在窗口中同时再打开另一个文件: 横向分割显示: :vs filename 纵向分割显示: :sp filename # 3.窗口切换 在所有窗口中循环移动 Ctrl+ww 如果finename不存在,则会新建该文件并打开。 # 4.关闭所有窗口 :wqa
summerking
2022/09/19
1.3K0
DataTable.Select 返回DataTable
在实际编程工程中,常常遇到这样的情况:DataTable并不是数据库中的,或者DataTable尚未写到数据库,或者从数据库中读出的DataTable已经在本地被改动,又没有写回数据库(可能还要作其他改动),在这些情况下,其实只要用.NET类库中提供的DataView类的强大功能(主要是用它的RowFilter属性),就能方便地解决这类查询问题。 常有网友在网上询问怎么在DataTable中执行DataTable.Select("条件")返回DataTable,今天我在这里给个解决方法给大家参考:代码如下
跟着阿笨一起玩NET
2018/09/18
1.7K0
JSF标签大全详解
藉由以下的几个主题,可以大致了解JSF的轮廓与特性,我们来看看网页设计人员与应用程序设计人员各负责什么。
一朵灼灼华
2022/08/05
1.5K0
好看的 input 编辑框
开始 效果图 代码 html部分 <div class="inputDiv"> <input type="text" name="id" required> <span class="inputText">账号</span> </div> <div class="inputDiv"> <input type="password" name="password" required> <span class="inputText">密码</span> <input t
xlj
2021/11/24
1.6K0
好看的 input 编辑框
yolov5多个框重叠问题
NMS(Non-Maximum Suppression,非极大值抑制)是一种在计算机视觉和目标检测领域常用的技术。它通常用于在图像或视频中找出物体或目标的位置,并剔除重叠的边界框,以确保最终的检测结果准确且不重叠。 
叶茂林
2023/10/23
5650
yolov5多个框重叠问题
android之编辑框限定范围
登陆界面里我们通常都需要限定用户输入数据的范围,如出生日期,密码长度……这些设置我们早已在pc上熟悉得不得了,然而今天我们讲讲如何在android里设置编辑框的范围。 首先,我们知道,android的编辑框是EditText,而EditText有很方便的属性,就是inputType,这里我们可以设置数字,邮箱地址,密码等等的类型。 然后,如果你要设置数值的大小范围或者字符串的长度范围,那就需要我们在代码里面设置了,我们需要为EditText添加TextWatcher监听器,该监听器最重要的方法就是after
forrestlin
2018/05/23
1.6K0
pandas合并和连接多个数据框
pandas作为数据分析的利器,提供了数据读取,数据清洗,数据整形等一系列功能。当需要对多个数据集合并处理时,我们就需要对多个数据框进行连接操作,在pandas中,提供了以下多种实现方式
生信修炼手册
2020/07/02
1.9K0
JSF之经常使用注解
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116350.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/07
5760
【屏幕快捷截图无法弹出编辑框】
重装了系统之后,因为部分系统的设置导致可能没有开启通知,所以在快捷截图之后只在通知栏显示截图,无法直接显示出操作框
magize
2023/07/11
7330
【屏幕快捷截图无法弹出编辑框】
纯手工搭建JSF开发环境(JSF2.2+maven+weblogic 12c/jboss EAP 6.1+)
JSF 2.X因为种种原因(我个人觉得主要是因为推出太晚),再加上EJB2之前的设计过于复杂,引起很多开发人员对官方解决方案的反感,即使EJB3后来做了大量改进,国内也很少有人对EJB3感兴趣,目前国内主流开发架构大多采用SSH,很少有JSF 2.x + EJB 3.x的应用,但从我个人感觉来看,特别是对于从.NET转型到JAVA的web程序员而言,JSF中的很多概念其实跟.NET很接近,国外已经有越来越多的项目在采用JSF + EJB3做为技术选型,下面将详细介绍JSF的开发环境搭建.
菩提树下的杨过
2018/09/20
1.5K0
纯手工搭建JSF开发环境(JSF2.2+maven+weblogic 12c/jboss EAP 6.1+)
JSF本地联调工具实践
Tech 导读 JSF作为京东内部日常最常用的RPC组件,通过JSF扩展,为大家提供JSF扩展思路及本地联调实践。 01 背景 在项目开发中,研发同学会经历下面的过程: 图1 研发日常开发周期 但是针对团队的测试环境,涉及到几个痛点: 多人联调使用时尤其是跨部门联调时,强依赖环境稳定,频繁启停发布或者由于某些原因没有启动成功,影响的不是一个人的,而是多方的 jsf接口逻辑较多,联调环节存在隐晦的bug时,大部分做法是打点日志重启再次调用排查,如果没有发现问题,继续反复加日志重启排查。这样的过程是苦恼且费
京东技术
2022/05/12
1.4K0
JSF本地联调工具实践
验证多个class相同的input框不为空
要求,页面有多个class相同的input输入框,在提交数据的时候,进行验证,验证input框不能为空,如果哪个为空,则弹出提示:
王小婷
2020/05/26
1.8K0
验证多个class相同的input框不为空
DataTable转list
1 public static class EntityConverter 2 { 3 /// <summary> 4 /// DataTable生成实体 5 /// </summary> 6 /// <typeparam name="T"></typeparam> 7 /// <param name="dataTable"></param> 8 /// <returns></returns> 9 public static IEnu
用户6362579
2019/09/29
1.6K0
13-6 编辑多个文件和保存
八、编辑多个文件(准) 用户经常遇到需要同时编辑多个文件的情况。可能是需要对多个文件作出修改,或者是拷贝文件的部分内容到另一个文件。 用户可以通过在命令行具体指定多个文件的方式使 vi 打开多个文件。 vi file1 file2... 现在退出所处的 vi 会话,并创建一个用于编辑的新文件。 输入:wq来退出 vi 并保存做出的修改。 接下来,使用 ls 命令的部分输出在主目录创建一个用于实验的新文件。 ls -l /usr/bin > ls-output.txt 现在就用 vi 同时
见贤思齊
2020/08/17
1.2K0
datatable删除行
  1.如果只是想删除datatable中的一行,可以用DataRow的delete,但是必须要删除后让DataTable知道,所以就要用到.AcceptChanges()方法,原因是这种删除只是标识性删除,就像我们通常在数据库中用到的IsDelete字段。
全栈程序员站长
2022/07/15
2.7K0

相似问题

使用Ajax将JSON对象发布到php

10

使用ajax将对象发布到PHP

212

使用AJAX将数据发布到PHP

22

使用AJAX将数据发布到PHP

31

使用AJAX将数据发布到PHP

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文