jQuery MiniUI

 找回密码
 立即注册
查看: 10068|回复: 12
打印 上一主题 下一主题

datagrid的drawcell链接丢失问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2012-9-6 12:14:32 |只看该作者 |倒序浏览
本帖最后由 natty7456 于 2012-9-6 13:07 编辑

<input id="b1" type="button"  value="查询" />   

   function toSearch() {
        var lotno = $(".classlotno").val().trim();

        if ($.trim(lotno).length == 0) {
            alert("请输入LotNo!");
            return;
        }

        mini.parse();

        var grid = mini.get("datagrid1");

        grid.url = "AjaxHandler/Service.ashx?method=TrackResult_byLotNo&lotno=" + lotno;

        grid.load();

        grid.on("drawcell", function (e) {
            var record = e.record,
                column = e.column,
                field = e.field,
                value = e.value;

              if (field == "BatchCode") {
                    e.cellHtml = '<a href="javascript:gotoTrack(\'' + value + '\')">' + value + '</a>';
                }
            }
        })

"查询"按钮上调用toSearch(),点击完“查询”按钮之后,drawcell出超级链接没有能够正确显示出来,第二次点击后显示正常。

请问是我写的方法错了,还是顺序错了?

Rank: 8Rank: 8

沙发
发表于 2012-9-6 14:19:27 |只看该作者
1.你的 grid.url = "AjaxHa....";这样写是错误的,miniui的所有属性都是使用setUrl();这样的set方式赋值.取值也是使用get的方式,getUrl();
2.drawcell的事件是在表格单元格绘制的时候触发,所以你要在点击按钮后,显示超链接,你可以在toSearch里面grid.reload()刷新下表格.

Rank: 3Rank: 3

板凳
发表于 2012-9-6 15:11:26 |只看该作者
http://www.miniui.com/docs/api/index.html#ui=datagrid

里面没有提到有setUrl的方法

开始界面datagrid上面是空的,当我点击查询的时候才输入数据,toSearch里面怎么加grid.reload法?

Rank: 8Rank: 8

地板
发表于 2012-9-6 15:17:01 |只看该作者
natty7456 发表于 2012-9-6 15:11
http://www.miniui.com/docs/api/index.html#ui=datagrid

里面没有提到有setUrl的方法


miniui的属性,基本都是支持set和get方法的.所以没写
如果一开始为空,点击查询再加载数据,那么你应把设置URL和load()方法写在查询方法里
代码如下:
  1. function toSearch() {

  2.             grid.setUrl("AjaxHandler/Service.ashx?method=TrackResult_byLotNo&lotno=" + lotno);
  3.             grid.load();
  4.             grid.on("drawcell", function (e) {
  5.                 var record = e.record,
  6.                     column = e.column,
  7.                     field = e.field,
  8.                     value = e.value;

  9.                 if (field == "BatchCode") {
  10.                     e.cellHtml = '<a href="javascript:gotoTrack(\'' + value + '\')">' + value + '</a>';
  11.                 }
  12.             })
  13.             
  14.         }
复制代码
由于你已经在点击的时候gird.load()数据,绘制单元格,激发了ondrawcell事件,所以不需要再reload()刷新了

Rank: 3Rank: 3

5#
发表于 2012-9-6 15:46:57 |只看该作者
对啊,我开始就是这么写的,但是发生的问题是:

“"查询"按钮上调用toSearch(),点击完“查询”按钮之后,drawcell出超级链接没有能够正确显示出来,第二次点击后显示正常。”

求解决方法

Rank: 8Rank: 8

6#
发表于 2012-9-6 16:10:02 |只看该作者
natty7456 发表于 2012-9-6 15:46
对啊,我开始就是这么写的,但是发生的问题是:

“"查询"按钮上调用toSearch(),点击完“查询”按钮之后,d ...

不会的,我是测试过的才贴的代码给你,是可以点击查询加载进来,马上绘制出来的.
我建议你这样先放个最简单的页面,就一个表格,单独测试这个方法

Rank: 3Rank: 3

7#
发表于 2012-9-7 09:13:11 |只看该作者
本帖最后由 natty7456 于 2012-9-7 09:16 编辑

我刚以为自己领悟了。

grid.load();和 grid.on("drawcell", function (e) {})这两句话的顺序反了。

因为先要绑定drawcell事件,在load的时候绘制才会触发,我纳闷上面怎么是怎么出来的...

经过测试发现还是不行,是asp.net编译之后第一次运行的时候,出不来链接

Rank: 8Rank: 8

8#
发表于 2012-9-7 09:34:12 |只看该作者
natty7456 发表于 2012-9-7 09:13
我刚以为自己领悟了。

grid.load();和 grid.on("drawcell", function (e) {})这两句话的顺序反了。

我在本地运行是没问题的,而且官网上的示例drawcell是正常的.
建议你给个静态数据和静态页面,把2个一起打包上传,我给你看下

Rank: 3Rank: 3

9#
发表于 2012-9-7 12:36:26 |只看该作者
natty7456 发表于 2012-9-7 09:13
我刚以为自己领悟了。

grid.load();和 grid.on("drawcell", function (e) {})这两句话的顺序反了。

晕,手动事件绑定当然要在第一次load之前了,否则在这个load的时候是没有那个事件,当然就不会出来了,而且这种绑定事件也应该只绑定一次呀

在页面初始化时绑定这个事件,然后再去调用你search的逻辑去load数据。

Rank: 3Rank: 3

10#
发表于 2012-9-7 15:40:25 |只看该作者
windsix 发表于 2012-9-7 12:36
晕,手动事件绑定当然要在第一次load之前了,否则在这个load的时候是没有那个事件,当然就不会出来了,而 ...

   function toSearch() {
        var lotno = $(".classlotno").val().trim();

        if ($.trim(lotno).length == 0) {
            alert("请输入LotNo!");
            return;
        }

        mini.parse();

        var grid = mini.get("datagrid1");

        grid.url = "AjaxHandler/Service.ashx?method=TrackResult_byLotNo&lotno=" + lotno;

        grid.load();
}

注意看,我在页面初始化时候,lotno的TextBox里面还没有值,这个是用户在点搜索之前填写进去的

但是gird的url必须要先设定后,才能load,不然也会报错的。

所以无法再页面初始化的时候绑定drawcell的事件

Archiver|普加软件

GMT+8, 2024-11-26 14:37 , Processed in 1.064772 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部