我在init方法中启动加载面板并将其隐藏在ReturnDataPayload事件中。当数据表中有一些值时,这是完美的工作。但是当没有从数据库返回的数据时,控件不会返回returnDataPayLoad event.Please帮我找到一个即使响应没有任何数据也会被触发的事件,或者告诉我隐藏加载面板的方法。
答案 0 :(得分:0)
如果您想要自定义行为,请使用DataSource的dataSource的dataReource方法的sendRequest方法
(function() {
var YdataTable = YAHOO.widget.DataTable,
YdataSource = YAHOO.util.DataSource;
var settings = {
container:"<DATATABLE_CONTAINER_GOES_HERE>",
source:"<URL_TO_RETRIEVE_YOUR_DATA>",
columnSettings:[
{key:"id", label:"Id"}
],
dataSourceSettings:{
responseType:YdataSource.TYPE_JSON,
responseSchema:{
resultsList:"rs",
fields:[
{key:"id"}
]
}
},
dataTableSettings:{
initialLoad:false
}
}
var dataTable = new YdataTable(
settings.container,
settings.columnSettings,
new YdataSource(
settings.source,
settings.dataSourceSettings),
settings.dataTableSettings);
})();
请记住无论您的数据来自哪个来源:XML,JSON,JavaScript对象,TEXT,您始终都会通过DataSource的sendRequest以统一的方式获取数据方法。因此,当您想要检索数据并同时添加自定义行为时,请使用它
dataTable.getDataSource().sendRequest(null, {
success:function(request, response, payload) {
if(response.results.length == 0) {
// No data returned
// Do what you want right here
// You can, for instance, hide the dataTable by calling this.setStyle("display", "none");
} else {
// Some data returned
// If you want to use default the DataTable behavior, just call
this.onDataReturnInitializeTable(request, response, payload);
}
},
scope:dataTable,
argument:dataTable.getState()
});
回复的属性是
在YUI dataTable page上,查找在运行时加载数据,以查看YUI dataTable提供的一些内置函数
我希望它可以是有用的,并随时为你想要的任何关于YUI的东西寻求帮助。查看YUI dataTable的优秀功能demo page