jQuery MiniUI

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

求助关于日历控件消失的问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2012-9-28 05:43:36 |只看该作者 |倒序浏览
我的页面是通过JS动态生成的(包括搜索div和datagrid有div),当点击页面的查询按钮后,会重新加载页面(即重新通过JS生成页面)
代码如下:
  //日期 将日期存入全局变量
    var d = mini.get("txtDate");
    this.date = d.getFormValue();

    //条件  将下拉框的text value存入全局变量
    var s = mini.get("cmbSearchText");
    this.pinJiText = s.getValue();
    this.pinJiSymbol = s.getText();


    var html = "";
    html += spliceSearch();  //搜索div
    html += spliceGrid();    //datagrid div
    document.body.innerHTML = html;
    mini.parse();

    var dd = mini.get("txtDate");
    dd.setValue(this.date);
    var ss = mini.get("cmbSearchText");
    ss.setValue(this.pinJiText);
    mini.parse();

    LoadPage();


下图是刚加载页面, 这是日历控件是正常的


下图是点击查询按钮后,日历控件消失了

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 3Rank: 3

沙发
发表于 2012-9-28 08:56:30 |只看该作者
刚测试了一下 chrome没有这个问题,IE有。
我的测试的是IE9

Rank: 9Rank: 9Rank: 9

板凳
发表于 2012-9-28 09:12:33 |只看该作者
你这个用法有点诡异。
你是不是为了做动态列,而动态创建表格的?

有两个解决方法:
1.你把你的页面做成一个html的,能重现问题的,打包上传,我们给你测试解决下。
2.你把动态生成表格的代码修改下:1)获取columns;2)grid.setColumns(columns);3)grid.load();
   这样可以动态设置表格列配置,并加载数据,这是标准的用法。

Rank: 3Rank: 3

地板
发表于 2012-9-28 09:37:00 |只看该作者
niko 发表于 2012-9-28 09:12
你这个用法有点诡异。
你是不是为了做动态列,而动态创建表格的?

1)获取columns;2)grid.setColumns(columns);3)grid.load();

这个获取应如何获取。。。
获取columns后具体应该怎么修改?修改后set我到是明白
给个demo地址呗

Rank: 3Rank: 3

5#
发表于 2012-9-28 09:58:05 |只看该作者
  var grid = mini.get("datagrid1");
    var cc = grid.getColumn("GuiDingJia");
    cc.header = this.pinJiSymbol ;
    grid.setColumns(cc);
    grid.load();


我是这么做的,运行完后,datagrid都没了。。。

Rank: 9Rank: 9Rank: 9

6#
发表于 2012-9-28 10:23:17 |只看该作者
你动态生成列:
var columns = [];
...

grid.setColumns(columns);

Rank: 3Rank: 3

7#
发表于 2012-9-28 10:44:03 |只看该作者
我其实就是想变化某个列头的header,非得动态生成,不能直接通过JS变化吗?就仅仅是一个列头而已。。。。重写动态代价就比较大了。。。

Rank: 9Rank: 9Rank: 9

8#
发表于 2012-9-28 11:05:57 |只看该作者
你要把你的需求说清楚啊。。。
很简单的:
1.给列定义一个name="aaa"
2.grid.updateColumn("aaa", { header: "abc" });

Rank: 3Rank: 3

9#
发表于 2012-9-28 12:15:13 |只看该作者
使用了grid.updateColumn("aaa", { header: "abc" });出现了如下问题:
下图是我点击搜索前,第一行前两列进行了合并,后边N行进行了合并


然后,我点击搜索的一瞬间,如图:之前的合并全木了


但load完毕后,发现后边N行的合并恢复了,但是第一行的两列合并失踪了。



我是在grid.load后,再进行的grid.updateColumn("GuiDingJia", { header: this.pinJiSymbol  })
事实上我在load之前也加过这句进行了测试,依然是同样的uk
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 9Rank: 9Rank: 9

10#
发表于 2012-9-28 13:00:23 |只看该作者
这里解释下,对于合并单元格,我们提供了margeCells方法,一般在加载事件中后调用。
表格做合并单元格,一般是为了做报表展示用的。
建议你这样做:
1.将合并方法,独立出来,比如:function doMarges() { ...}
2.在onload和updateColumn的时候,都调用下doMarges方法。
这样加载、更改表头后,都能再次合并单元格,就可以了。

Archiver|普加软件

GMT+8, 2024-11-26 18:53 , Processed in 1.038828 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部