FineUI 官方论坛

标题: 【已解决】列锁定+自动换行后再添加数据会出现同一行高... [打印本页]

作者: KK.Leung    时间: 2017-11-10 16:31
标题: 【已解决】列锁定+自动换行后再添加数据会出现同一行高...
[attach]10747[/attach]
如图,在“英文名称” 列设置了列锁定和自动换行,然后动态添加数据到Grid,就会出现这样的错位,同一行不同高度。
把“英文名称”列解锁后恢复正常

作者: sanshi    时间: 2017-11-11 16:52
请用空项目重现问题,发到客服QQ邮箱:2877408506@qq.com
作者: KK.Leung    时间: 2017-11-11 17:58
sanshi 发表于 2017-11-11 16:52
请用空项目重现问题,发到客服QQ邮箱:

已发送~
作者: sanshi    时间: 2017-11-11 21:10
代码写的不错

updateCellValue后默认不会调用对表格重新布局,你的这种情况只需要更新值后重新布局即可:
  1. function selectTheEmptyRow() {
  2.             var returnArr = []
  3.             var theGrid = F.ui.MainGrid;
  4.             theGrid.getRowEls().each(function (index, row) {
  5.                 var temp = theGrid.getCellValue(row, 'Name');
  6.                 if (F.isEMP(temp)) {
  7.                     returnArr.push(theGrid.getRowId(row));
  8.                 }
  9.             });
  10.             return returnArr;
  11.         }

  12.         function onInsertData() {
  13.             var rowData = {
  14.                 "Name": "这是个很长很长很长很长很长很长很长很长的名字",
  15.                 "Color": "随便"
  16.             };
  17.             var emptyRow = selectTheEmptyRow();
  18.             if (emptyRow.length >= 1) {
  19.                 F.ui.MainGrid.selectRow(emptyRow[0]);
  20.                 F.ui.MainGrid.cancelEdit();
  21.                 F.noEvent(function () {
  22.                     F.ui.MainGrid.updateCellValue(emptyRow[0], rowData);
  23.                 });

  24.                 F.ui.MainGrid.doLayout();
  25.             }
  26.         }
复制代码


[attach]10750[/attach]

作者: KK.Leung    时间: 2017-11-13 08:50
sanshi 发表于 2017-11-11 21:10
代码写的不错

updateCellValue后默认不会调用对表格重新布局,你的这种情况只需要更新值后重新布局即 ...

原来如此,忽略了doLayout这个方法,感谢三石兄的解答~




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4