jQuery MiniUI

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

DataGrid 重绘问题 [复制链接]

Rank: 4

跳转到指定楼层
楼主
发表于 2014-11-3 16:36:01 |只看该作者 |倒序浏览
<button>获取选中行数据</button>
        <div id="p1" style="width:500px;height:300px; padding-left:30px;" class="mini-datagrid">
            <div property="columns">
                <div field="a">aa</div>
                <div field="b">bb</div>
                <div field="c">CC</div>
            </div>
        </div>

    <script type="text/javascript">
        var data = [{ a: 1, b: 0, c: "bit" }, { a: 0, b: 1, c: "bit" }, { a: "测试", b: 2, c: "txt" }, { a: "2014-5-12 12:22:36", b: 2, c: "datatime"}];
        mini.parse();
        var grid = mini.get("p1");
        grid.setData(data);
        grid.on("drawcell", function(e) {
            var row = e.record, field = e.field, value = e.value, index = grid.indexOf(row);
            if (field == "a" && row.c == "bit") {
                if (value == 0) {
                    e.cellHtml = '<input type="radio" name="' + index + '" checked />是<input type="radio" name="' + index + '"/>否';
                }
                if (value == 1) {
                    e.cellHtml = '<input type="radio" name="' + index + '"/>是<input type="radio" name="' + index + '" checked/>否';
                }
            }
            if (field == "a" && row.c == "txt") {
                e.cellHtml = '<input type="text"  id="txt' + index + '" name="txt' + index + '" value="' + value + '"/>';
            }
            if (field == "a" && row.c == "datatime") {
                //e.cellHtml = '<input  id="' + Id + '" name="' + Id + '" class="mini-datepicker" style="width:200px;"format="yyyy-MM-dd H:mm:ss" timeFormat="H:mm:ss" showTime="true" showOkButton="true" showClearButton="false"/>';
            }
        });

        function click1() {
            //debugger
            var row = grid.getSelected();
            if (this.checked) {
                grid.updateRow(row, { a: 1 });
            } else {
                grid.updateRow(row, { a: 0 });
            }
        }
        function click2() {
            var row = grid.getSelected();
            if (this.checked) {
                grid.updateRow(row, { a: 0 });
            } else {
                grid.updateRow(row, { a: 1 });
            }
        }

        function onblur1(id, index) {
            var newrow, dValue;
            newrow = grid.getRow(index);
            dValue = $("#txt" + id).attr("value");
            grid.updateRow(newrow, { a: dValue });
        }

        function getData() {
            var row = grid.getSelected();
            var json = mini.encode(row);
            alert(json);
        }
</script>

以上是我在 http://miniui.com/bbs/forum.php? ... B%E9%87%8D%E7%BB%98  上修改的例子:
但是最后没有得到想要的结果?
我的A字段是根据C字段来重绘不同的控件,但是如果加上 class="mini-datepicker" 或者 文本控件就不显示。
如果使用原生态的控件最后获取的结果还是不对?这是为什么?

Rank: 8Rank: 8

沙发
发表于 2014-11-3 16:47:28 |只看该作者
表格绘制只能绘制原生控件,不支持MiniUI控件

Rank: 4

板凳
发表于 2014-11-3 16:53:18 |只看该作者
felt 发表于 2014-11-3 16:47
表格绘制只能绘制原生控件,不支持MiniUI控件

那我上面的例子为什么获取的结果是不正确的?

function onblur1(id, index) {
            var newrow, dValue;
            newrow = grid.getRow(index);
            dValue = $("#txt" + id).attr("value");
            grid.updateRow(newrow, { a: dValue });
        }

function getData() {
            var row = grid.getSelected();
            var json = mini.encode(row);
            alert(json);
        }

最后获取的结果 与 newrow = grid.getRow(index); 获取的结果都不正确?

Rank: 4

地板
发表于 2014-11-3 17:07:08 |只看该作者

这是根据你们给的一列子修改的:



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

Rank: 4

5#
发表于 2014-11-3 17:08:46 |只看该作者
felt 发表于 2014-11-3 16:47
表格绘制只能绘制原生控件,不支持MiniUI控件

帮忙看看那个压缩文件中的修改的例子?
错误出现在什么地方?

Rank: 8Rank: 8

6#
发表于 2014-11-3 17:26:30 |只看该作者
linda931 发表于 2014-11-3 17:08
帮忙看看那个压缩文件中的修改的例子?
错误出现在什么地方?

你传的index是字符串,不是数字

Archiver|普加软件

GMT+8, 2024-11-25 09:59 , Processed in 1.070848 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部