2009-02-04 70 views
1

我正在使用YUI数据表和数据源在我的一个项目中呈现数据。返回的数据恰好是NULL,YUI数据源无法解析它。如何让YUI数据源解析数据集中的空值?

下面是datasource和datatable的声明代码。为了可读性,我将每个声明分开。

列说明声明

  var columnDescription = 
      [ 
       {key:'Requirements'}, 
       {key:'abc'}, 
       {key:'xyz'} 
      ]; 

这columnDescription在下面的功能设置。

数据源宣言

var dataSrcSample = new YAHOO.util.FunctionDataSource(getDataGrid); 
    myDataSource.connMethodPost = true; 
    myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON; 
        myDataSource.responseSchema = { 
        fields:['Requirements', 
    {key:'abc',parser:YAHOO.util.DataSource.parseString}, 
    {key:'xyz',parser:YAHOO.util.DataSource.parseString}] 
         }; 

getDataGrid函数进行调用服务器端从服务器获取数据。 下面是表格定义本身。

 YAHOO.example.sampleTable = function() 
     { 
          var columnDesc=columnDescription; 
      var myDataSource = dataSrcSample; 
      var oConfigs = 
      { 
       width:'100%' 
      }; 

var myDataTable = new YAHOO.widget.DataTable("tableContainerDiv", 
    columnDesc, 
    myDataSource, 
    oConfigs); 
       }(); 

tableContainerDiv在HTML页面声明。这是容器分区。 从服务器获取JSON数据的函数。

function getDataGrid() 
{ 
     //calls backend and gets the data 
} 

该函数返回具有一些空值的json字符串。数据源构造函数抱怨以下问题。

  • ERROR_DATAINVALID
  • ERROR_DATANULL

我检查了锐documentation,发现串分析器不分析空值。我想知道是否有任何方法来解析这些数据。我必须处理响应解析原始数据吗?任何建议感激。

+0

完全重复使用-蕊数据源 - 值退回-。 (没有足够的代表投票结束或编辑。) – 2009-02-04 08:49:55

回答

0

您需要创建自己的解析器吗?

function parseNull(value) { 
    // This exact logic may be incorrect, depends on what you get for value in the null case 
    if (value=='null') { 
     return null; 
    } 
    YAHOO.util.DataSource.parseString(value); 
} 

然后你可以指定:

{key:'abc',parser:parseNull} 

要使用新的解析器