YUIデータテーブルとデータソースを使用して、プロジェクトの1つでデータをレンダリングしています。返されたデータはたまたま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値を解析しないことがわかりました。このデータを解析する方法はないかと思います。生データを解析するためにhandleResponseを実行する必要がありますか?任意の提案をいただければ幸いです。