English 中文(简体)
如何使YUI数据源解析数据集中的Null值?
原标题:
  • 时间:2009-02-04 01:27:37
  •  标签:

我正在使用YUI的datatable和datasource来呈现我的项目数据。返回的数据恰好是NULL,YUI datasource无法解析它。

下面是数据源和数据表的声明代码。为了易读性,我将每个声明分开。

列描述声明

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

此列的描述已在下面的函数中设置。

数据源声明

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 function makes the call to server side to get the data from the server. Below is the table definition itself.

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 is declared in the html page. This is the container div. The function that gets the JSON data from server.

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

该功能返回具有一些空值的JSON字符串。数据源构造函数报告以下问题。

  • ERROR_DATAINVALID
  • ERROR_DATANULL

我检查了YUI文档,发现字符串解析器无法解析空值。我想知道是否有任何方法可以解析这些数据。我是否需要处理响应来解析原始数据?有什么建议?

问题回答

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

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}

使用你的新解析器。





相关问题
热门标签