请问easyui 下datagrid列单独赋值的问题


就是像上面的图片一样,我选了工艺编号,同时要给工艺名称也赋上值
但工艺名称不是可编辑的列
不用使用getEditor来获取编辑器然后赋值

...全文
5555 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangjun147 2019-04-19
  • 打赏
  • 举报
回复

<table class="easyui-datagrid" id="dgMat" data-options="toolbar:'#matBar'">
<thead>
<tr>
<th data-options="field:'matId',width:150,halign:'center',align:'center',editor:{
type : 'combobox',
options : {
data: data3,
valueField: 'id',
textField: 'text',
panelHeight: 'auto',
onSelect: function(){
var rows = $('#dgMat').datagrid('getRows');//获取datagrid的所有行
rows[editingId]['names'] = '测试纸'; //获取要编辑的单元格,直接赋值
$('#dgMat').datagrid('endEdit', editingId); //关闭编辑状态(不先关闭直接刷新会导致取消编辑状态并无法再次打开编辑状态)
$('#dgMat').datagrid('refreshRow', editingId); //刷新此行
$('#dgMat').datagrid('beginEdit', editingId); //重新打开编辑状态

}
}
}">物料编号</th>
<th data-options="field:'names',width:120,halign:'center',align:'center'">物料名称</th>
<th data-options="field:'Spec',width:120,halign:'center',align:'center'">规格型号</th>
<th data-options="field:'attr',width:80,halign:'center',align:'center'">物料属性</th>
<th data-options="field:'unit',width:80,halign:'center',align:'center'">基本单位</th>
<th data-options="field:'wastage',width:80,halign:'center',align:'center'">损耗率</th>
<th data-options="field:'safeCount',width:80,halign:'center',align:'center'">安全库存</th>
</tr>
</thead>
</table>

楼主要的是onSelect里的东西吧
imxchaos 2016-08-04
  • 打赏
  • 举报
回复
问题解决了么,我想知道怎么解决的,麻烦楼主告知
lixin1412 2015-05-12
  • 打赏
  • 举报
回复
引用 4 楼 wggfcusmq 的回复:
[quote=引用 3 楼 lixin1412 的回复:] [quote=引用 2 楼 wggfcusmq 的回复:] [quote=引用 1 楼 lixin1412 的回复:]
$('#dg').datagrid('updateRow', {
                index: $('#dg').datagrid('getRowIndex',row),
                row: {
                    ProductType: '新名称',
                }
            });
不能用updaterow,因为updaterow会重置其它列的值[/quote] 应该只会更改提供了新值的列吧,至少我是这样,前提你得先editend() 还有一种最直接的办法,直接改dom[/quote] updaterow会重置其它编辑列的值,因为在updaterow时,用户可能已经修改了半成品编号和半成品名称, 如果新的row中没有这两列的新值,就会重置了,所以用updaterow,我还必须先取半成品编号和半成品名称的新值,组成json再updaterow,我想如果有单独修改某个列的方法就不用这么麻烦了。[/quote]
var row = $('#dg').datagrid('getSelected');
        if (row) {
            var i=$('#dg').datagrid('getRowIndex',row);
            var td=$('.datagrid-body td[field="字段名"]')[i];
            var div = $(td).find('div')[0];
            $(div).text('新值');
        }
直接改,最终的dom一样的
  • 打赏
  • 举报
回复
引用 3 楼 lixin1412 的回复:
[quote=引用 2 楼 wggfcusmq 的回复:] [quote=引用 1 楼 lixin1412 的回复:]
$('#dg').datagrid('updateRow', {
                index: $('#dg').datagrid('getRowIndex',row),
                row: {
                    ProductType: '新名称',
                }
            });
不能用updaterow,因为updaterow会重置其它列的值[/quote] 应该只会更改提供了新值的列吧,至少我是这样,前提你得先editend() 还有一种最直接的办法,直接改dom[/quote] updaterow会重置其它编辑列的值,因为在updaterow时,用户可能已经修改了半成品编号和半成品名称, 如果新的row中没有这两列的新值,就会重置了,所以用updaterow,我还必须先取半成品编号和半成品名称的新值,组成json再updaterow,我想如果有单独修改某个列的方法就不用这么麻烦了。
lixin1412 2015-05-12
  • 打赏
  • 举报
回复
引用 2 楼 wggfcusmq 的回复:
[quote=引用 1 楼 lixin1412 的回复:]
$('#dg').datagrid('updateRow', {
                index: $('#dg').datagrid('getRowIndex',row),
                row: {
                    ProductType: '新名称',
                }
            });
不能用updaterow,因为updaterow会重置其它列的值[/quote] 应该只会更改提供了新值的列吧,至少我是这样,前提你得先editend() 还有一种最直接的办法,直接改dom
  • 打赏
  • 举报
回复
引用 1 楼 lixin1412 的回复:
$('#dg').datagrid('updateRow', {
                index: $('#dg').datagrid('getRowIndex',row),
                row: {
                    ProductType: '新名称',
                }
            });
不能用updaterow,因为updaterow会重置其它列的值
lixin1412 2015-05-12
  • 打赏
  • 举报
回复
$('#dg').datagrid('updateRow', {
                index: $('#dg').datagrid('getRowIndex',row),
                row: {
                    ProductType: '新名称',
                }
            });

61,112

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧