Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态设置dojox.grid.datagrid标题列宽 我有一个声明性的dojox.grid.datagrid,具有初始标题列宽。我有一个文本框。我的需要是_Javascript_Dynamic_Datagrid_Dojo_Dojox.grid.datagrid - Fatal编程技术网

Javascript 动态设置dojox.grid.datagrid标题列宽 我有一个声明性的dojox.grid.datagrid,具有初始标题列宽。我有一个文本框。我的需要是

Javascript 动态设置dojox.grid.datagrid标题列宽 我有一个声明性的dojox.grid.datagrid,具有初始标题列宽。我有一个文本框。我的需要是,javascript,dynamic,datagrid,dojo,dojox.grid.datagrid,Javascript,Dynamic,Datagrid,Dojo,Dojox.grid.datagrid,在UI中,如果用户在textbox中输入任何值,则该值应设置为列标题的动态宽度 <div class="claro" id="dfgdfgd" name="dataGrid" onclick="setWidgetproperty(this.id,'xy','inner__dfgdfgd');" ondblclick="editCustomGrid(this.id)" onmouseup="setDocStyle(this.id)" style="height:200px; left:42p

在UI中,如果用户在textbox中输入任何值,则该值应设置为列标题的动态宽度

<div class="claro" id="dfgdfgd" name="dataGrid" onclick="setWidgetproperty(this.id,'xy','inner__dfgdfgd');" ondblclick="editCustomGrid(this.id)" onmouseup="setDocStyle(this.id)" style="height:200px; left:42px; position:absolute; top:89px; width:950px;">
 <table class="claro" dojotype="dojox.grid.DataGrid" id="inner__dfgdfgd" rowselector="10px" style="height: 180px; width: 300px;">
      <thead>
           <tr>
                <th field="Column1" id="Column1" noresize="true" width="100px">
                     <label id="Column1" onclick="getCustomGridColName(this.id,'inner__dfgdfgd');" style="cursor:pointer; font-family: Times; font-size:12pt;">
                          Column1
                     </label>
                </th>
                <th field="Column2" id="Column2" noresize="true" width="100px">
                     <label id="Column2" onclick="getCustomGridColName(this.id,'inner__dfgdfgd');" style="cursor:pointer; font-family: Times; font-size:12pt;">
                          Column2
                     </label>
                </th>
           </tr>
      </thead>
 </table>
 <input id="hidden__dfgdfgd" name="dataGrid" style="display:none;" type="hidden">

有一个名为
setCellWidth()
(您可以在中阅读)的方法,可用于更改单元格的宽度

然后需要完成的唯一步骤是更新列(以便更改可见)。此步骤可以通过
cell.view.update()完成

请注意:使用
grid.update()
grid.sizeChange()
更新整个网格是不够的,因为它只会更新列标题。(这是我注意到的。)

因此,在
forEach
循环中,您可以执行以下操作:

grid.setCellWidth(idx, "200px");
cell.view.update();

我还制作了一个可以查看的工作JSFIDLE。

是否可以使用onResizeColumn(cellIdx)重新调整列的宽度,即使我不知道为什么不可以。您可以在event handler.ok中编写相同的foreach循环。触发事件时,是否可以获得调整后的宽度值?您可以在事件处理程序中使用
grid.getCell(celldx).width
,以获取事件处理程序中作为参数给定的单元格宽度。您可以使用该单元格的宽度,而不是将其设置为“200px”。请尝试使用
grid.getCell(celldx).unitWidth
。每次更改列宽时(通过编程或UI),该值都会更新。
grid.setCellWidth(idx, "200px");
cell.view.update();