dojo 加载Json数据

1、今天研究了dojo datagrid加载WebService后台传上来的数据。研究来研究去发现他不是很难。用谷歌多调试一下就好了。

2、看很多例子,这个例子能够更好的帮我解决问题:https://dojotoolkit.org/documentation/tutorials/1.10/dojo_data/index.html

往下滑动页面会看到类似于下面例子的截图:

3、框架都好说,把字段对应上问题不大,主要是数据。我开始是直接将WebService传出来的JSON数据传入给Memory的data,导致各种错误。   后来看了上面这个例子之后,然后用谷歌调试,发现了问题的解决办法,原来Memory中的data是一个array数组对象,而我传给它的只是json字符串,所以导致各种报错,如下图所示:

4、这样我只要把我的JSON数据反序列话成Array数组对象问题就解决啦,我的完整代码如下:

<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Demo: Store Adapter</title>
    <link rel="stylesheet" href="style.css" media="screen">
    <link rel="stylesheet" href="http://localhost/dojoroot/dojox/grid/resources/claroGrid.css" media="screen">
    <style>
        #grid {
            width:100%;
        }
    </style>
</head>
<body class="claro">
<h1>Demo: Store Adapter</h1>
<div id="grid">
</div>
<!-- load dojo -->
<script src="http://localhost/dojoroot/dojo/dojo.js"></script>
<script type="text/javascript" src="http://localhost/dojoroot/jquery-3.1.0.js"></script>
<script>

//好友信息
      $.ajax({
       type:"post",
       contentType:"application/json;charset=UTF-8",
       url:"http://localhost/StuManager/StuManWService.asmx/GetStuAllInfo",
       dataType:"json",
       success:function(result)
       {
            //showinfo(result.d)
            var persons = eval("("+result.d+")"); //将WebService传过来的JSON数据反序列化成Array数组。
            showinfo(persons);
       }
       });
      function showinfo(ss)
      {

    var data, grid;
    require([
        "dojo/store/Memory",
        "dojo/data/ObjectStore",
        "dojox/grid/DataGrid",
        "dojo/domReady!"
    ], function(Memory, ObjectStore, DataGrid){
        var objectStore = new Memory({
            data:ss
        });
        grid = new DataGrid({
            store: ObjectStore({objectStore: objectStore}),
            structure: [
                { name: "学号", field: "学号", width: "5%" },
                { name: "姓名", field: "姓名", width: "5%" },
                { name: "密码", field: "密码", width: "5%" },
                { name: "性别", field: "性别", width: "5%" },
                { name: "星座", field: "星座", width: "5%" },
                { name: "年龄", field: "年龄", width: "5%" },
                { name: "班级", field: "班级", width: "5%" },
                { name: "所在班级年份", field: "所在班级年份", width: "5%" },
                { name: "生日", field: "出生日期", width: "5%" },
                { name: "电话号码", field: "电话号码", width: "5%" },
                { name: "家庭住址", field: "家庭住址", width: "5%" },
                { name: "QQ号码", field: "QQ号码", width: "5%" },
                { name: "备注", field: "备注", width: "5%" }
        ]
        }, "grid");
        grid.startup();
    });
    };
</script>
</body>
</html>

PS:说一下DataGrid显示乱码的问题,如下图:

解决办法:因为我的js文件和html文件是分开的,把js文件用记事本打开,然后另存为UTF-8格式的文件显示就正常了,如下图所示:

时间: 2024-10-16 02:21:42

dojo 加载Json数据的相关文章

JQuery跨域加载JSON数据或HTML。

前提:有时候需要在网页上,加载另一个网站上的数据.或者加载另一个网站上的一个页面.Js的Ajax请求不具备跨域功能,可以使用JQuery来实现. 网页端JS代码: $(function () { $.ajax({ type: "get", async: false, url: "http://localhost:13964/getpage.ashx?callback=?",//服务端URL,该URL返回一段JS数据.如需返回HTML,只需把HTML组织成JSON即可

hive加载json数据解决方案

hive官方并不支持json格式的数据加载,默认支持csv格式文件加载,如何在不依赖外部jar包的情况下实现json数据格式解析,本编博客着重介绍此问题解决方案 首先创建元数据表: create EXTERNAL table access_log (content string) row format delimited fields terminated by '\t' STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInpu

Echarts ajax动态加载json数据

后台php写的,给前台准备好json格式数据 public function actionGetOffline(){ $userid = Yii::$app->user->identity->user_id; $connection = Yii::$app->db; $command = $connection->createCommand("SELECT proc_phase_id from tb_pro where user_id like '%$userid%

vue通过ajax加载json数据

HTML <ul id="Hanapp"> <li class="styVue" v-for="item in actList"> <a class="img_li" :href="item.href"></a> <img :src="item.img" alt="" /> <span class=&q

MVC4中EasyUI Tree异步加载JSON数据生成树

  1,首先构造tree接受的格式化数据结构MODEL /// <summary> /// 定义EasyUI树的相关数据,方便控制器生成Json数据进行传递 /// </summary> // [DataContract] [Serializable] public class EasyTreeData { /// <summary> /// ID /// </summary> //  [DataMember] public string id { get;

Ext.tree.panel 后端动态加载json数据

首先建一个bean类,如: package ***.bean; import java.io.Serializable;import java.util.List; public class Menu implements Serializable { private static final long serialVersionUID = 1L; private String id; private String parentId;//设置父id和子id用来拼接children,设成字符串有利

EasyUI combobox 加载JSON数据《一》

Action返回 JSON 格式如下: jsonResult = { total=7,rows=[ {TEXT=技术支持, ID=402894ca4419acf1014419b148a10000}, {TEXT=开发部, ID=402894ca4419acf1014419beb1bc0001}, {TEXT=实施, ID=4028e439476b55be01477bbf0fab0000}, {TEXT=技术支持, ID=4028e439476b55be01477bbfb80e0001}, {TE

EasyUI combobox 加载JSON数据

Action返回 JSON 格式如下: jsonResult = { total=7,rows=[ {TEXT=技术支持, ID=402894ca4419acf1014419b148a10000}, {TEXT=开发部, ID=402894ca4419acf1014419beb1bc0001}, {TEXT=实施, ID=4028e439476b55be01477bbf0fab0000}, {TEXT=技术支持, ID=4028e439476b55be01477bbfb80e0001}, {TE

js加载json数据成表格

根据json文件,读取并自动生成表格: 处理JSON的文件是将JSON串保存在js文件中,定义了一个变量名等于这个JSON串(数组). 参考: https://my.oschina.net/TOW/blog/734589 http://www.cnblogs.com/rainlam163/p/3259494.html <html> <head> <title></title> <style type="text/css"> t