jQuery MiniUI

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

遇到一个datagrid提交时候的问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2018-8-21 09:27:49 |只看该作者 |倒序浏览
datagrid里面设置了勾选最多只能12条 超过12条勾选第13条数据的时候直接在js里面取消勾选,但是显示是已经取消勾选了,点击提交的时候第13条还是会被提交上去,怎么解决?谢谢附图:

js代码:
  1. var grid = mini.get("datagrid");
  2.         var quickCount = 0;
  3.         grid.load();
  4.         initQuick();


  5.         grid.on("select", function () {
  6.             quickCount++;
  7.             if (quickCount > 12) {
  8.                 mini.alert("最多只能选取12个快捷功能!");
  9.                 e.deselect();
  10.             }
  11.         });

  12.         //grid.on("beforeselect", function (e) {
  13.         //    if (quickCount > 12) {
  14.         //        e.deselect();
  15.         //    }
  16.         //});

  17.         grid.on("deselect", function () {
  18.             quickCount--;
  19.         });
复制代码


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

Rank: 8Rank: 8

沙发
发表于 2018-8-21 10:11:44 |只看该作者
请不要按你的想象来写代码
阻止选择请在onbeforeselect事件中处理
grid.on("beforeSelect",function(e){
     var selects=grid.getSelecteds();
     if(selects.length>=12){
            e.cancel=true;
     }
})

Rank: 2

板凳
发表于 2018-8-21 10:17:20 |只看该作者
felt 发表于 2018-8-21 10:11
请不要按你的想象来写代码
阻止选择请在onbeforeselect事件中处理
grid.on("beforeSelect",function(e){

您这样的话 都没法取消再选择别的了么

Rank: 8Rank: 8

地板
发表于 2018-8-21 10:40:05 |只看该作者
我就是Zel 发表于 2018-8-21 10:17
您这样的话 都没法取消再选择别的了么

当然可以

Rank: 2

5#
发表于 2018-8-21 10:49:25 |只看该作者
felt 发表于 2018-8-21 10:40
当然可以


我这不管怎么点都取消不掉上面的钩子,我把我代码贴上 麻烦大佬帮我看看 谢谢
html:
  1. <div id="editWindow" class="mini-window" title="选择需要的快捷功能" style="width: 400px; height: 500px" showmodal="true"
  2.          allowresize="false" allowdrag="true" showfooter="true">
  3.         <div class="mini-fit">
  4.             <div id="datagrid" class="mini-datagrid" pagesize="100" style="width: 100%; height: 100%;" showemptytext="true" emptytext="未找到相应数据"
  5.                  idfield="ml_id" multiselect="true" allowmovecolumn="false" sizelist="[10,20,50,100]" allowUnselect="true"
  6.                  url="../Controllers/System/QuickMenuAction.ashx?method=GetMenuList">
  7.                 <div property="columns">
  8.                     <div type="checkcolumn" width="20"> </div>
  9.                     <!--<div type="indexcolumn" align="center" headeralign="center" width="20">序号</div>-->
  10.                     <div field="ml_name" width="80" headeralign="center" align="center">
  11.                         功能名称
  12.                     </div>
  13.                 </div>
  14.             </div>
  15.         </div>
  16.         <div property="footer" style="text-align: center; padding: 5px;">
  17.             <a class="mini-button btnSave" iconcls="icon-ok" onclick="Save()">确定</a>
  18.             <span class="btnSave" style="display: inline-block; width: 25px;"></span>
  19.             <a class="mini-button" iconcls="icon-cancel" onclick="Close()">关闭</a>
  20.         </div>
  21.     </div>
复制代码
js:
  1.         var eWin = mini.get("editWindow");
  2.         var grid = mini.get("datagrid");
  3.         var quickCount = 0;
  4.         grid.load();
  5.         initQuick();


  6.         grid.on("select", function () {
  7.             quickCount++;
  8.             if (quickCount > 12) {
  9.                 //mini.alert("最多只能选取12个快捷功能!");
  10.                 mini.alert(quickCount);
  11.             }
  12.         });


  13.         grid.on("beforeSelect", function (e) {
  14.             var selects = grid.getSelecteds();
  15.             if (selects.length >= 12) {
  16.                 e.cancel = true;
  17.             }
  18.         })

  19.         grid.on("deselect", function () {
  20.             quickCount--;
  21.         });


  22.         function editShow() {
  23.             initEwin();
  24.             eWin.show();

  25.         }
  26.         function Close() {
  27.             grid.clearSelect();
  28.             quickCount = 0;
  29.             eWin.hide();
  30.         }

  31.         function Save() {
  32.             var rows = grid.getSelecteds();
  33.             $.ajax({
  34.                 url: "../Controllers/System/QuickMenuAction.ashx?method=AddOrEditList",
  35.                 anysc: false,
  36.                 type: "POST",
  37.                 data: {
  38.                     rows: mini.encode(rows)
  39.                 },
  40.                 success: function (text) {
  41.                     var o = mini.decode(text);
  42.                     if (o.return_code = "Success") {
  43.                         mini.alert("操作成功");
  44.                         eWin.hide();
  45.                         initQuick();
  46.                     }
  47.                 },
  48.                 error: function (jqXHR, textStatus, errorThrown) {
  49.                     mini.alert(jqXHR.responseText);
  50.                 }
  51.             });
  52.             grid.clearSelect();
  53.             quickCount = 0;
  54.         }

  55.         function initQuick() {
  56.             $.ajax({
  57.                 url: "../Controllers/System/QuickMenuAction.ashx?method=GetQuickList",
  58.                 type: "post",
  59.                 dataType: "json",
  60.                 success: function (res) {
  61.                     var count = res.qm_Count;
  62.                     var s = '';
  63.                     if (count > 0) {
  64.                         var ids = res.qm_MenuIds.split(",");
  65.                         var names = res.qm_Names.split(",");
  66.                         var urls = res.qm_Urls.split(",");
  67.                         var icons = res.qm_Icons.split(",");
  68.                         for (var i = 0; i < count; i++) {
  69.                             s += '<a onclick="AddTab(\'' + ids[i] + '\',\'' + names[i] + '\',\'' + urls[i] + '\',\'' + icons[i] + '\')"><div class="depart"><div class="img ' + icons[i] + '"></div><p>' + names[i] + '</p></div></a>';
  70.                         }
  71.                         $('.depart1').empty().append(s);
  72.                     }
  73.                     else {
  74.                         $('.depart1').empty().append(s);
  75.                     }

  76.                 },
  77.                 error: function (jqXHR, textStatus, errorThrown) {
  78.                     alert(jqXHR.responseText);
  79.                 }
  80.             });
  81.         }

  82.         function initEwin() {
  83.             $.ajax({
  84.                 url: "../Controllers/System/QuickMenuAction.ashx?method=GetQuickList",
  85.                 type: "post",
  86.                 dataType: "json",
  87.                 success: function (res) {
  88.                     quickCount = 0;
  89.                     var uids = res.qm_Uids.split(",");
  90.                     var count = res.qm_Count;
  91.                     if (count > 0) {
  92.                         //quickCount = count;
  93.                         for (var i = 0; i < count; i++) {
  94.                             grid.setSelected(uids[i]);
  95.                         }
  96.                     }
  97.                 },
  98.                 error: function (jqXHR, textStatus, errorThrown) {
  99.                     alert(jqXHR.responseText);
  100.                 }
  101.             });
  102.         }
复制代码


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

Rank: 8Rank: 8

6#
发表于 2018-8-21 11:24:38 |只看该作者
我就是Zel 发表于 2018-8-21 10:49
我这不管怎么点都取消不掉上面的钩子,我把我代码贴上 麻烦大佬帮我看看 谢谢
html:
js:

本地测试,未发现问题,可以正常取消选中
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Archiver|普加软件

GMT+8, 2025-7-13 23:35 , Processed in 1.044401 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部