プロジェクトの 1 つでデータをレンダリングするために、YUI データテーブルとデータソースを使用しています。返されたデータはたまたま NULL であり、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 ページで宣言されています。これはコンテナ div です。サーバーから JSON データを取得する関数。
function getDataGrid()
{
//calls backend and gets the data
}
関数は、いくつかの null 値を持つ json 文字列を返しています。データソース コンストラクターは、次の問題を訴えています。
- ERROR_DATAINVALID
- ERROR_DATANULL
yui のドキュメントを確認したところ、文字列パーサーが null 値を解析しないことがわかりました。このデータを解析する方法があるかどうか疑問に思っています。生データを処理する必要がありますか? 任意の提案をいただければ幸いです。