关于Datatable使用json数据的问题

刚刚接触YUI,制作一个表格,但在数据显示时遇到了data error的错误,服务器由PHP返回json数据。

firebug显示接收到的数据如下:
{
  "total":17,
  "results":[
     {"hostid":"C1","name":"C1","ip":"192.168.1.241","sip":"","vendor":"CISCO","lrt":"2009-04-15 14:30:41","status":"On"},

     {"hostid":"C2","name":"C2","ip":"192.168.1.242","sip":"","vendor":"CISCO","lrt":"2009-04-15 16:57:51","status":"On"},

     {"hostid":"C4","name":"C4","ip":"192.168.1.244","sip":"","vendor":"CISCO","lrt":"2009-04-15 16:57:46","status":"On"},

     {"hostid":"CSCO","name":"CSCO","ip":"192.168.1.243","sip":"","vendor":"CISCO","lrt":"2009-04-15 16:57:48","status":"On"},

     {"hostid":"DR","name":"DR","ip":"192.168.1.130","sip":"","vendor":"JUNIPER","lrt":"2009-03-02 13:59:51","status":"On"}
   ]
}

 

javascript 代码:

(function(){
    var Dom = YAHOO.util.Dom,
    Evemt = YAHOO.util.Event,
    Sel = YAHOO.util.Selector;
    var feedURL = "PHP/service/hostService.php";
    var columnDefs = [
          {key:'', formatter: YAHOO.widget.DataTable.formatCheckbox,resizeable: false,sortable: false, width:10 },
          {key:"hostid",label: "Host ID",resizeable: true,maxAutoWidth: 60,sortable: true},
          { key:"name",label: "Name",resizeable: true,maxAutoWidth: 60,sortable: true} ,
          {key:"ip",label: "IP",resizeable: true,sortable: true },
          {key:"sip",label: "Secondary IP",resizeable: true,sortable: true  },
          { key:"vendor", label: "Hardware",resizeable: true,sortable: true},
          {key:"lrt",label: "Last Received Time", resizeable: true,sortable: true },
          {key:"status", label: "Receive Status",resizeable: true, sortable: true}
    ];

    var dataSource = new YAHOO.util.DataSource(feedURL);
    dataSource.connMethodPost = true;
    dataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
    dataSource.responseSchema = {
        resultList: 'results',
        fields : ["hostid","name","ip","sip","vendor","lrt","status"],
        metaFields : {
            totalRecords: "total"
        }
    };

    var requestBulider = function(oState, oSelf) {
        // Get states or use defaults
        oState = oState || {
            pagination:null,
            sortedBy:null
        };
        var sort = (oState.sortedBy) ? oState.sortedBy.key : "hostid";
        var dir = (oState.sortedBy && oState.sortedBy.dir === YAHOO.widget.DataTable.CLASS_DESC) ? "DESC" : "ASC";
        var startIndex = (oState.pagination) ? oState.pagination.recordOffset : 0;
        var results = (oState.pagination) ? oState.pagination.rowsPerPage : 5;

        // Build custom request
        var poststr = "task=getallhost" +
        "&fields=" + sort +
        "&dir=" + dir +
        "&start=" + startIndex +
        "&limit=" + results;
        alert(poststr);
        return poststr;
    };

    var tableCfg = {
        sortedBy: {
            key:'hostid',
            dir: YAHOO.widget.DataTable.CLASS_ASC
        },
        draggableColumns: true,
        initialRequest:"task=getallhost&dir=ASC&limit=5&sort=hostid&start=0",
        generateRequest : requestBulider,
        dynamicData: true,
        paginator : new YAHOO.widget.Paginator({
            containers: 'htpgnav',
            rowsPerPage    : 5 
        })
    };
    
    YAHOO.syslog.hosttable = new YAHOO.widget.DataTable('hosttable',columnDefs,dataSource,tableCfg);

})();

 

 

谢谢各位!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值