jQuery MiniUI

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

dataGrid中其中一行的值进行了编辑修改就不会触发点击事件 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2016-9-2 16:42:22 |只看该作者 |倒序浏览
我这面要实现如图的功能,在进行奖项名称更改后  我点击后面的赋星评价(这个功能是由grid的rowclick事件来完成的),但是现在出现了这么一个问题,我首先修改前面的奖项名称,然后直接点击后面的星星不会触发rowclick事件,但是我先修改奖项名称,但是值没有变(也就是说我点击了奖项名称变成了输入框,但是我没有改变值),这时候再去点击星星就会触发rowclick事件,想问一下这个怎么能够解决,谢谢图1:没有修改奖项名称

图2:想要修改奖项名称(也就是这时候当你改变值或者不改变值是也就是“一等奖”修不修改,会导致点击行的时候是否会触发rowclick事件)

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

Rank: 8Rank: 8

沙发
发表于 2016-9-2 17:25:36 |只看该作者
正常情况下是不会影响的,估计你有其他代码影响了
提供一个简单页面重现问题

Rank: 2

板凳
发表于 2016-9-5 11:09:22 |只看该作者
dforce 发表于 2016-9-2 17:25
正常情况下是不会影响的,估计你有其他代码影响了
提供一个简单页面重现问题 ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>奖项设置</title>
<script type="text/javascript" src="js/boot.js"></script>
</head>
<body>
        <div class="mini-toolbar">
                <table style="width: 100%;">
                        <tr>
                                <td width="5px"></td>
                                <td align="left">
                                        <a id="set-activity-prize-add" class="mini-button" plain="true" iconCls="icon-add" onclick="add()">增加</a>
                                        <a id="set-activity-prize-edit" class="mini-button" plain="true" iconCls="icon-edit" onclick="edit()">修改</a>
                                        <a id="set-activity-prize-cancel" class="mini-button" plain="true" visible="false" iconCls="icon_extend_quxiao" onclick="cancel()">取消</a>
                                </td>
                        </tr>
                </table>
        </div>
        <div class="mini-fit" style="border:none; padding:0px;margin:0px;width:100%;height:100%;">
                <div id="set-activity-prize" class="mini-datagrid" idField="actId" borderStyle="border-top:0;"
                        selectOnLoad="true" style="width:100%;height:100%;border:none;" showPager="false"
                        allowCellEdit="true" allowCellSelect="true" allowCellValid="true">
                        <input id="awStar" name="awStar" class="mini-hidden" />
                        <input id="awId" name="awId" class="mini-hidden" />
                        <div property="columns">
                                <div field="awName" headerAlign="center" width="60%">奖项名称
                                        <input property="editor" class="mini-textbox"style="width:100%;" maxlength="20" />
                                </div>
                                <div field="star" headerAlign="center" width="40%">赋星评价</div>
                        </div>
                </div>
        </div>
        <script type="text/javascript">
                mini.parse();
                var starFlag = 2;
                var oActivityName = $("#set-activity-prize-activity-name"), // 活动名称
                oPrize = mini.get("set-activity-prize");// 奖项列表
               
                var btnEdit = mini.get("set-activity-prize-edit"), // 编辑按钮
                btnAdd = mini.get("set-activity-prize-add"),// 新增按钮
                btnCancel = mini.get("set-activity-prize-cancel");// 取消按钮

                var rowData=[
                        {
                                "awId" : 1,
                                "awName" :"奖金2000元",
                                "awStar" :"2",
                                "star" : "2"
                        },
                        {
                                "awId" : 2,
                                "awName" :"奖金3000元",
                                "awStar" :"3",
                                "star" : "3"
                        }
                ];
                oPrize.setData(rowData);
                function init(editType) {
                        if ("add" == editType) {
                                btnEdit.setVisible(false);// 编辑按钮隐藏
                                btnCancel.setVisible(true);// 取消按钮显示
                                btnAdd.setVisible(false); // 增加按钮隐藏
                                oPrize.setAllowCellEdit(true);// 允许单元格编辑
                        } else if ("edit" == editType) {
                                btnEdit.setVisible(false);// 编辑按钮隐藏
                                btnCancel.setVisible(true);// 取消按钮显示
                                btnAdd.setVisible(false); // 增加按钮隐藏
                                oPrize.setAllowCellEdit(true);// 允许单元格编辑
                        } else {
                                btnEdit.setVisible(true);// 编辑按钮显示
                                btnCancel.setVisible(false);// 取消按钮隐藏
                                btnAdd.setVisible(true); // 增加按钮隐藏
                                oPrize.setAllowCellEdit(false);// 不允许单元格编辑
                        }
                }
               
                oPrize.on("rowclick", function(e) {
                        console.log(1);
                });
               
                //增加奖项设置
                function add() {
                        init("add");
                        var row = new Object();
                        oPrize.addRow(row);
                        oPrize.setSelected(row);
                }
                // 修改奖项
                function edit() {
                        init("edit");
                }
                function cancel(){
                        init();
                }
        </script>
</body>
</html>

Rank: 2

地板
发表于 2016-9-5 11:11:56 |只看该作者
dforce 发表于 2016-9-2 17:25
正常情况下是不会影响的,估计你有其他代码影响了
提供一个简单页面重现问题 ...

这就是我的页面   你看一下  就是 在你改变第一列的值得时候  如果值变了 你点击第二列 他就不会走rowclick 如果你的值不变  你就是点击了一下第一列 然后点击第二列  同一行  他就会触发rowclick

Rank: 8Rank: 8

5#
发表于 2016-9-5 13:44:29 |只看该作者
sun6874632 发表于 2016-9-5 11:11
这就是我的页面   你看一下  就是 在你改变第一列的值得时候  如果值变了 你点击第二列 他就不会走rowcli ...

换cellbeginedit事件
点击事件的话,如果有数据改变,会先更新数据,点击事件就不会触发

Rank: 2

6#
发表于 2016-9-5 15:34:16 |只看该作者
felt 发表于 2016-9-5 13:44
换cellbeginedit事件
点击事件的话,如果有数据改变,会先更新数据,点击事件就不会触发 ...

= =我也想到了还cellbeginedit时间  但是发现一个事情  我第2行上面绑定的DIV  然后会动态给这个DIV复制  结果这个一弄 发现他会绑定一个新的DIV  然后就发现值根本得不到了  因为cellbeginedit这个事件他会得到一个新的div,我再想想其他办法吧

Archiver|普加软件

GMT+8, 2024-11-11 06:32 , Processed in 1.043879 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部