1

フォーマッター関数によってテキスト ボックスとしてレンダリングされる列の 1 つを持つ Dojo Datagrid があります。レンダリングされたテキストボックスをクリックして値を入力すると、カーソルがテキストボックスに表示され、フォーカスがすぐに失われます (つまり、カーソルが消えます。入力しても何も生成されません)。フォーカスを設定するには、テキストボックスをもう一度クリックする必要があります。そうして初めて、値を入力できます。

最初のクリック自体にフォーカスを設定する方法はありますか?

コードは次のとおりです。

<table dojoType="dojox.grid.DataGrid" store="selectedItemsStore" class="resultsGridClass" jsid="selecteditems">
<thead>
<tr>
<th field="field1" formatter="renderTextBox" width="20%">Field 1</th>
</tr>
</thead>
</table>

そして、フォーマッター関数は次のとおりです。

function renderTextBox(value, rowIndex) {
var htmlString = "<input type='text' name= 'exp' />";
return htmlString;
}
4

4 に答える 4

1
window.setTimeout(function() {
    dijit.byId("profileGrid").scrollToRow(rowIndex);
    dijit.byId("profileGrid").focus.setFocusIndex( rowIndex, 0 );
    dijit.byId("profileGrid").edit.setEditCell( dijit.byId("profileGrid").getCell(0), rowIndex );
},10);
于 2012-09-13T20:03:10.580 に答える
0

のインスタンスを作成するときに、属性をdojox.grid.EnhancedGrid使用して として設定します。singleClickEdittrue

これにより、最初のクリックでテキストボックスまたはその他のウィジェットにフォーカスが設定されます。

于 2012-06-15T12:38:38.533 に答える
0

editable 属性と alwaysEditing 属性を true に設定してみてください。

<th alwaysEditing="true" editable="true" field="field1" formatter="renderTextBox" width="20%" >Field 1</th>
于 2009-10-16T09:59:13.600 に答える