jQuery MiniUI

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

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: 1

地板
发表于 2021-1-15 15:12:17 |显示全部楼层
felt 发表于 2021-1-15 09:11
http://www.miniui.com/demo/#src=datagrid/celllinkedit.html
参考职位列

好的谢谢

Rank: 1

5#
发表于 2021-1-19 08:43:07 |显示全部楼层
felt 发表于 2021-1-15 16:49
你这里是行数据里面带了本行下拉数据的选项。
也可以这样处理
规格项

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

Rank: 1

6#
发表于 2021-1-19 09:08:58 |显示全部楼层
felt 发表于 2021-1-19 09:04
field="specItem_id" displayField="specItem_text"
这两个字段对应的才是你选择的数据。 ...

奥这样子,谢谢啦

Rank: 1

7#
发表于 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的值就是上次选择的“红色”,这个是什么原因呢

Rank: 1

8#
发表于 2021-1-20 09:57:24 |显示全部楼层
晓花ovo 发表于 2021-1-20 09:47
您好,再麻烦问一下,这个为什么我的data中combobox的onchangevalue事件会“延迟”,比如我选择了颜色“ ...
  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.                 <!--OnCellBeginEdit="OnCellBeginEdit"-->
  5.                 <div property="columns">

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

  7.                         <div field="specItem_id" displayField="specItem_text"  width="150" headerAlign="center">规格项
  8.                                 <input property="editor" class="mini-combobox" onvaluechanged="getSpecPrice()" style="width:100%;" valueField="id" textField="text"/>
  9.                         </div>
  10.                 </div>
  11.         </div>
复制代码
js
  1.         function getSpecPrice(){
  2.                 var goodsId = mini.get("add_ToCart_goodsId").getValue();
  3.                 var data = add_ToCart_grid.getData();
  4.                 var dataJson = JSON.stringify(data);
  5.                 console.log(dataJson);
  6.         }
复制代码

Rank: 1

9#
发表于 2021-1-20 11:18:04 |显示全部楼层
felt 发表于 2021-1-20 10:07
combobox值变动的时候还没有把数据更新到表格上,所以你获取到的表格数据还是未编辑的。
建议在oncellend ...

好啦,谢谢啦!

Archiver|普加软件

GMT+8, 2024-5-26 00:40 , Processed in 1.049845 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部