没有数据从数据库返回时

时间:2010-12-28 17:14:07

标签: yui yui-datatable

我在init方法中启动加载面板并将其隐藏在ReturnDataPayload事件中。当数据表中有一些值时,这是完美的工作。但是当没有从数据库返回的数据时,控件不会返回returnDataPayLoad event.Please帮我找到一个即使响应没有任何数据也会被触发的事件,或者告诉我隐藏加载面板的方法。

1 个答案:

答案 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()
});

回复的属性是

  • results(Array):统一的数据来源。 对于结果数组中的每个对象根据responseSchema的fields属性属性。请注意,我使用response.results.length 来验证是否已返回某些数据
  • error(布尔):表示数据错误
  • cached(布尔):表示缓存的响应
  • meta(Object):架构解析的元数据

YUI dataTable page上,查找在运行时加载数据,以查看YUI dataTable提供的一些内置函数

我希望它可以是有用的,并随时为你想要的任何关于YUI的东西寻求帮助。查看YUI dataTable的优秀功能demo page