jQuery MiniUI

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

addRow之后怎么更改新增行的某一列显示内容 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2017-6-16 17:15:27 |只看该作者 |倒序浏览
本帖最后由 meriberry 于 2017-6-16 17:30 编辑

在用addRow新增一行之后,怎么获取到新增行的某一列A,并设置A列的超链接内容
function newRow(row_uid) {
            //var row = {};
            var row = datagrid_cgjhjl.getRowByUID(row_uid);
            var newRow = mini.clone(row);
            var action_c = newRow.action;

            var index = datagrid_cgjhjl.indexOf(row);

            //alert("bbb." + row_uid + "ccc." + index);
            datagrid_cgjhjl.addRow(newRow, Number(index));

            //action列,超连接操作按钮
            action_c.cellStyle = "text-align:center";
            action_c.cellHtml = '<a class="Update_Button" href="javascript:updateRow(\'' + uid + '\')">更新</a>'
                + ' <a class="Delete_Button" href="javascript:delRow(\'' + uid + '\')">删除</a>';

        }

Rank: 8Rank: 8

沙发
发表于 2017-6-16 18:52:06 |只看该作者
单元格内容绘制都是在ondrawcell事件里处理的,addrow只是新增行,会触发ondrawcell事件,按你原来设计的绘制规则来绘制。

Rank: 1

板凳
发表于 2017-6-19 15:23:35 |只看该作者
felt 发表于 2017-6-16 18:52
单元格内容绘制都是在ondrawcell事件里处理的,addrow只是新增行,会触发ondrawcell事件,按你原来设计的绘 ...

action列只能统一的一起更改吗,能不能根据执行的操作方法判断我想显示的内容?

比如我有三行数据,其中三行都可以进行克隆,
但我想只有这三行显示的是克隆(只允许克隆,不能删除),
点击“克隆”生成的行显示的是“更新”,“删除”(不能对新增的行进行克隆,只能更新或者删除)

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

Rank: 8Rank: 8

地板
发表于 2017-6-19 16:25:01 |只看该作者
meriberry 发表于 2017-6-19 15:23
action列只能统一的一起更改吗,能不能根据执行的操作方法判断我想显示的内容?

比如我有三行数据,其中 ...

ondrawcell事件里面根据逻辑来生成不同的内容
比如你可以判断是不是新增的
if(e.record._state=="added"){
   e.cellHtml=’更新 删除";
}esle{
   e.cellHtml='克隆‘
}

Rank: 1

5#
发表于 2017-6-19 17:47:30 |只看该作者
felt 发表于 2017-6-19 16:25
ondrawcell事件里面根据逻辑来生成不同的内容
比如你可以判断是不是新增的
if(e.record._state=="added") ...

我在onActionRenderer事件中实现啦
        function onActionRenderer(e) {
            var grid = e.sender;
            var record = e.record;
            var uid = record._uid;
            var rowIndex = e.rowIndex;

            
            if (record._state == "added") {
                var s = '<a href="javascript:updateRow(\'' + uid + '\')">更新</a>&nbsp; '
                            + '<a href="javascript:delRow(\'' + uid + '\')">删除</a>'
            } else {
                var s = '<a href="javascript:newRow(\'' + uid + '\')">克隆</a>&nbsp; ';
            }
            //if (grid.isEditingRow(record)) {
            //    s = '<a class="Update_Button" href="javascript:updateRow(\'' + uid + '\')">更新</a>'
            //    + ' <a class="Delete_Button" href="javascript:delRow(\'' + uid + '\')">删除</a>'
            //        + '<a class="Cancel_Button" href="javascript:cancelRow(\'' + uid + '\')">取消</a>';
            //}
            return s;
        }

现在有另一个问题,合并了行的表,合并的其中一行能被删除吗,我现在新增了一行,点了删除,两条都一起删除了


        function delRow(row_uid) {
            //alert(row_uid);
            alert("delRow" + row_uid);
            var row = datagrid_cgjhjl.getRowByUID(row_uid);
            if (row) {
                datagrid_cgjhjl.removeRow(row);
            }
            //if (row) {
            //    if (confirm("确定删除此记录?")) {
            //        datagrid_cgjhjl.loading("删除中,请稍后......");
            //        $.ajax({
            //            url: "../data/AjaxService.aspx?method=RemoveEmployees&id=" + row.id,
            //            success: function (text) {
            //                datagrid_cgjhjl.reload();
            //            },
            //            error: function () {
            //            }
            //        });
            //    }
            //}
        }

Rank: 8Rank: 8

6#
发表于 2017-6-19 19:43:05 |只看该作者
meriberry 发表于 2017-6-19 17:47
我在onActionRenderer事件中实现啦
        function onActionRenderer(e) {
            var grid = e.s ...

合并是一次性的,删除之后需要重新再执行一次合并。

Rank: 1

7#
发表于 2017-6-19 20:52:04 |只看该作者
felt 发表于 2017-6-19 19:43
合并是一次性的,删除之后需要重新再执行一次合并。

还有个问题, grid 中两个日期列额,A日期不能大于B日期,怎么验证或判断?

Rank: 1

8#
发表于 2017-6-21 11:28:28 |只看该作者
meriberry 发表于 2017-6-19 20:52
还有个问题, grid 中两个日期列额,A日期不能大于B日期,怎么验证或判断? ...

已实现

function onCellValidation(e) {
    var record = e.record;
    var editor = e.editor;
    var value = e.value;

    var grid = e.sender;
    var rownum = grid.indexOf(grid.getSelected());
    alert(rownum);

    if (e.field == "age") {

        if (e.value < 20) {
            e.isValid = false;
            e.errorText = "年龄必须大于20岁";
        }
    }
    if (e.field == "gender") {
        if (e.value == 0) {
            e.isValid = false;
            e.errorText = "不能为空";
        }
    }

    if (e.field == "xq" && typeof(value) != "undefined") {
        var xq = value;
        alert("1." + xq);


        var scrq = grid.data[rownum]["scrq"];
        alert(scrq);

        if (scrq != "") {
            if (xq <= scrq) {
                e.isValid = false;
                e.errorText = "效期必大于生产日期!";
            }
        }
    }
    else
        if (e.field == "scrq" && typeof(value) != "undefined") {
            var scrq = value;
            alert("2." + scrq);

            var xq = grid.data[rownum]["xq"];
            alert(xq);

            if (xq != "") {
                if (xq <= scrq) {
                    e.isValid = false;
                    e.errorText = "效期必大于生产日期!";
                }
            }
        }
}

Archiver|普加软件

GMT+8, 2025-6-9 05:23 , Processed in 1.027066 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部