jQuery MiniUI

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

datagrid 加载 combobox [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2021-1-14 15:33:58 |只看该作者 |倒序浏览
本帖最后由 晓花ovo 于 2021-1-14 16:07 编辑

前端代码:
  1. <div id="add_ToCart_grid" class="mini-datagrid" style="width:650px;height:280px;"
  2.     url="${request.getContextPath()}/controller/goodsSpec/queryGoodsSpecForGrid"
  3.     allowCellEdit="true" allowCellSelect="true" multiSelect="true">
  4.    <div property="columns">

  5.       <div field="specTitle" width="120" headerAlign="center" allowSort="true">规格名</div>

  6.       <div field="specItem" width="150" headerAlign="center" >规格项
  7.          <input property="editor" class="mini-combobox" style="width:100%;" valueField="id" textField="name"/>
  8.       </div>
  9.    </div>
  10. </div>
复制代码
接收到的数据



是否可以设置上去,我上面的代码设置后全是object
没点的时候:

点击后:





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

Rank: 1

沙发
发表于 2021-1-14 15:36:29 |只看该作者
有没有办法设置上去呢,我现在想的还有种方法就是等datagrid加载完成后,然后根据name获取到所有的combobox然后再一一设置上去

Rank: 1

板凳
发表于 2021-1-14 16:59:34 |只看该作者
刚才还尝试了name获取
前端代码开始那样子,不过input加了个name属性
  1. <input name="specItemCombobox" property="editor" class="mini-combobox" style="width:100%;" valueField="id" textField="name"/>
复制代码
之后:js代码
  1. add_ToCart_grid.load({goodsId:goodsId});
  2.                
  3. add_ToCart_window.show();

  4. var specItemCombobox = mini.getsbyName("specItemCombobox");
  5. console.log(specItemCombobox);
复制代码
打印后的值为一个空数组[]

Rank: 8Rank: 8

地板
发表于 2021-1-15 09:11:15 |只看该作者
晓花ovo 发表于 2021-1-14 16:59
刚才还尝试了name获取
前端代码开始那样子,不过input加了个name属性之后:js代码打印后的值为一个空数组[] ...

http://www.miniui.com/demo/#src=datagrid/celllinkedit.html
参考职位列

combobox数据加载和表格数据加载是需要分开的。

Rank: 1

5#
发表于 2021-1-15 15:12:17 |只看该作者
felt 发表于 2021-1-15 09:11
http://www.miniui.com/demo/#src=datagrid/celllinkedit.html
参考职位列

好的谢谢

Rank: 8Rank: 8

6#
发表于 2021-1-15 16:49:30 |只看该作者
felt 发表于 2021-1-15 09:11
http://www.miniui.com/demo/#src=datagrid/celllinkedit.html
参考职位列

你这里是行数据里面带了本行下拉数据的选项。
也可以这样处理
<div field="specItem_id" displayField="specItem_text" width="150" headerAlign="center" >规格项
         <input property="editor" class="mini-combobox" style="width:100%;" valueField="id" textField="name"/>
      </div>
grid.on("cellbeginedit",function(e){
    if(e.field=="specItem_id"){
            e.editor.setData(e.record.specItem);
    }
})
但是正常表格数据和下拉数据是分开加载的。

Rank: 1

7#
发表于 2021-1-19 08:43:07 |只看该作者
felt 发表于 2021-1-15 16:49
你这里是行数据里面带了本行下拉数据的选项。
也可以这样处理
规格项

这个样子设置后,调用grid.getData()的时候获取的就是下拉框的所有数据,而不是当前选择的下拉框的数据

Rank: 8Rank: 8

8#
发表于 2021-1-19 09:04:22 |只看该作者
晓花ovo 发表于 2021-1-19 08:43
这个样子设置后,调用grid.getData()的时候获取的就是下拉框的所有数据,而不是当前选择的下拉框的数据 ...

field="specItem_id" displayField="specItem_text"
这两个字段对应的才是你选择的数据。

Rank: 1

9#
发表于 2021-1-19 09:08:58 |只看该作者
felt 发表于 2021-1-19 09:04
field="specItem_id" displayField="specItem_text"
这两个字段对应的才是你选择的数据。 ...

奥这样子,谢谢啦

Rank: 1

10#
发表于 2021-1-20 09:47:43 |只看该作者
felt 发表于 2021-1-19 09:04
field="specItem_id" displayField="specItem_text"
这两个字段对应的才是你选择的数据。 ...

您好,再麻烦问一下,这个为什么我的data中combobox的onchangevalue事件会“延迟”,比如我选择了颜色“红色”,此时调用grid.getData()时,获取到的数据没有这个颜色,但是我再重新选择颜色“绿色”,这时候调用grid.getData(),获取到的combobox的值就是上次选择的“红色”,这个是什么原因呢

Archiver|普加软件

GMT+8, 2024-11-22 20:09 , Processed in 1.064995 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部