jQuery MiniUI

标题: DataGrid 怎么默认选中第一行 [打印本页]

作者: 星光灭绝    时间: 2013-3-21 20:21:05     标题: DataGrid 怎么默认选中第一行

怎么加载了DataGrid之后就默认选中第一行?或是能够得到第一行的数据
我试图用
        var a= grid.getRow(0);
        alert(a);
来获得第一行的信息 结果alert出来的是null

作者: niko    时间: 2013-3-21 20:27:56

selectOnLoad="true"
作者: 星光灭绝    时间: 2013-3-21 22:48:11

在grid已经load的前提下
      
grid.selectOnLoad = "true";
        var row = grid.getSelected();
        alert(row);

还是null。。。。。
作者: factory    时间: 2013-3-22 10:03:21

星光灭绝 发表于 2013-3-21 22:48
在grid已经load的前提下
      
grid.selectOnLoad = "true";

grid.setSelectOnLoad(true)
属性都必须用set和get
作者: 星光灭绝    时间: 2013-3-26 18:59:04

factory 发表于 2013-3-22 10:03
grid.setSelectOnLoad(true)
属性都必须用set和get
           grid.load();
            grid.setSelectOnLoad(true);
            var row = grid.getSelected();
            alert(row);

grid还是弹出的null
作者: factory    时间: 2013-3-27 09:13:23

星光灭绝 发表于 2013-3-26 18:59
grid.load();
            grid.setSelectOnLoad(true);
            var row = grid.getSelec ...

selectOnLoad="true" ,测试是没有问题的,你直接写在属性上试试
作者: 星光灭绝    时间: 2013-3-27 09:45:00

  1. <div id="grid" class="mini-datagrid" style="width: 100%; height: 90%"
  2.                         allowresize="true" allowalternating="true" pagesize="50" allowcelledit="false"
  3.                         allowcellselect="false" multiselect="false" editnextonenterkey="true" selectonload="true">
复制代码
var grid = mini.get("grid");
grid.url = "。。。。";
grid.load();
alert(grid.getSelected());

郁闷了,还是是null
作者: 星光灭绝    时间: 2013-3-27 09:46:14

星光灭绝 发表于 2013-3-27 09:45
var grid = mini.get("grid");
grid.url = "。。。。";
grid.load();

还有没有其他曲线救国的方法
作者: factory    时间: 2013-3-27 15:06:27

星光灭绝 发表于 2013-3-27 09:46
还有没有其他曲线救国的方法

[attach]1500[/attach]
就是设置selectOnLoad="true"
然后获取grid.getSelected()就有了啊

作者: 星光灭绝    时间: 2013-3-27 16:23:55

factory 发表于 2013-3-27 15:06
就是设置selectOnLoad="true"
然后获取grid.getSelected()就有了啊

我好像发现一点情况了


var grid = mini.get("grid");
grid.url = "。。。。";
grid.load();
alert(grid.getSelected());
这里初始化grid的时候,alert出来的是null

等整个界面的都加载完后,我把alert(grid.getSelected());随便放在一个按纽触发函数的第一行,alert出来都有值

作者: factory    时间: 2013-3-27 18:32:16

星光灭绝 发表于 2013-3-27 16:23
我好像发现一点情况了

setUrl()
作者: 星光灭绝    时间: 2013-3-28 10:43:41

不管用  真是奇怪 我之前那样写代码(grid.url= , grid.load,  alert(getSelected())他是先弹的alert,等我点击确定后,页面才开始加载datagrud。。。
作者: factory    时间: 2013-3-28 13:25:26

星光灭绝 发表于 2013-3-28 10:43
不管用  真是奇怪 我之前那样写代码(grid.url= , grid.load,  alert(getSelected())他是先弹的alert,等 ...

你看看我们的demo,所有属性的设置都是用的set,从来都是不能直接.XXX这样写法的。
获取也是,必须get,也不能.xxx就获取
作者: 星光灭绝    时间: 2013-3-29 09:49:37

factory 发表于 2013-3-28 13:25
你看看我们的demo,所有属性的设置都是用的set,从来都是不能直接.XXX这样写法的。
获取也是,必须get, ...

我试过。。。  grid.url  改成 之前说的 gird.setUrl(....) 也是先弹的alert然后再加载。

不过Grid.url="...." 或 grid.setUrl(...) 后 再load一下grid,表格都能正确加载数据
作者: phoebej89    时间: 2013-3-29 10:03:56

因为基于jquery开发的东西都是异步进行的,一个方法里面调用三个方法,这三个方法可能不是按照先后顺序进行,而是同时进行。所以你 alert的也是同时进行,由于之前的grid还没有渲染完毕,对象还没有成型,所以你的获取到的肯定是null,要给它一点时间渲染
作者: factory    时间: 2013-3-29 13:41:07

星光灭绝 发表于 2013-3-29 09:49
我试过。。。  grid.url  改成 之前说的 gird.setUrl(....) 也是先弹的alert然后再加载。

不过Grid.url= ...

因为grid的数据是异步加载的,你可以这样
grid.load(null,function(){
    alert(1)
})
这样试试





欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2