当前位置:  开发笔记 > 编程语言 > 正文

如何使用按钮刷新YUI dataTable?

如何解决《如何使用按钮刷新YUIdataTable?》经验,为你挑选了2个好方法。

我正在测试脚本:

http://developer.yahoo.com/yui/examples/datatable/dt_xhrjson.html

我想添加一个按钮来刷新(重置)数据.我会重置所有修改过的数据并重新加载第一个数据.我添加了这段代码,所以选择(刷新)后,我没有数据:

YAHOO.util.Event.onContentReady("splitbuttonsfromjavascript", function () {

var onMenuItemSelect = function () {

        myDataTable.initializeTable();

        myDataTable.render();

        };

        var aSplitButton5Menu = [

            { text: "Refresh", value: 1, onclick: { fn: onMenuItemSelect } }

        ];

        var oSplitButton5 = new YAHOO.widget.Button({ type: "split",  label: "Refresh table", name: "splitbutton", menu: aSplitButton5Menu, container: this });

    });

我需要在onMenuItemSelect中使用什么来刷新mydataTable?


我做了一些修改来修改示例中的"城市"和"评级":http: //developer.yahoo.com/yui/examples/datatable/dt_xhrjson.html

现在,我希望用一个按钮重置MyTable(并重新加载默认数据集).当我使用我的代码时,按下按钮后,我清除所有并且不重新加载默认数据(我有:"没有找到记录."按钮点击后).

我如何重新加载默认数据?



1> JohnRudolfLe..:

我认为Gourneau的答案是最好的,但它缺少一个很好的接触.要显示"正在加载..."消息,您需要调用showTableMessage函数.

myDataTable.showTableMessage("Loading...");
myDataTable.getDataSource().sendRequest('', { success: myDataTable.onDataReturnInitializeTable, scope: myDataTable });

请求完成后,onDataReturnInitializeTable函数将自动清除表消息.

我也在我的博客上发布了这个.



2> bret..:

我无法获得Gourneau发布的方法(它在整个地方被提及),所以我想出了这个小小的黑客:

   function updateTable(){
      sortState = theDataTable.getState().sortedBy
      var sort = sortState ? sortState.key : "id";
      var dir = sortState ? sortState.dir : "yui-dt-desc";
      theDataTable.sortColumn(theDataTable.getColumn(sort),dir);
   };

您找到当前的排序方法,然后调用sortColumn告诉它再次排序,并刷新数据.这也保持了分页顺序.我使用它与搜索框和一些过滤器,所以我可以更改其值并相应地更新表.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有