3

プロジェクトで GWT2.3 を使用しています。ユーザーが editableTextCell をクリックしたときに editableTextBox の幅を広げたい。問題は、列の幅が 200 ピクセルであることです。ユーザーが editableTextCell をクリックすると、その TextBox の幅は EditableTextCell で約 125px になり、列の幅と比較して小さくなります。

Celltableの列にEditTextCellを追加しました

Column stringColumn = new Column(new EditTextCell()) { // マイ コード }

cellTable.addColumn(stringColumn, "MyColumn"); cellTable.setColumnWidth(checkBoxColumn, 200, Unit.PX);

次の方法でテキストボックスの幅を広げようとしましたが、問題はテキストボックスで編集できず、フォーカスが失われないことです

    @Override
            public void onBrowserEvent(Context context, Element elem,Record object, NativeEvent event) {
                String type = event.getType();

                  int editedTexBoxSize = (cellTable.getOffsetWidth()-100)/cellTable.getColumnCount();

                  if(elem.getInnerHTML().startsWith("<INPUT")){
                      String test = elem.getInnerHTML();
                     // test = <INPUT tabIndex=-1 value=P __eventBits="2048"></INPUT>

                     test= test.replace("value", " size="+editedTexBoxSize+" value");


                    // test = <INPUT tabIndex=-1 size=131 value=P __eventBits="2048"></INPUT>


                      elem.setInnerHTML(test);
                  }
                super.onBrowserEvent(context, elem, object, event);
            }

EditTextCellに表示されるTextBoxの幅を増やしたい(設定したい)は、列の幅と同じです。

解決策はありますか?

4

3 に答える 3

3

私のプロジェクトでは、次のようにします。

cellTable.getColumn(cellTable.getColumnIndex(column)).setCellStyleNames(CELL_CSS);

.edit-cell input {
    width: 290px;
}
于 2012-11-01T06:52:18.930 に答える
1

最後に答え!以下を追加して、UIBinderを使用してこれをさらに簡単に試しました:

.edit-cell input {
    width: 30px;
    text-align: right;
}

次に、追加したセルテーブルについて

 <c:CellTable
        addStyleNames='{style.edit-cell}'
        ui:field='itemTable' />

素晴らしい !

于 2013-01-03T15:55:32.887 に答える
0

カスタム コンポーネントを作成する必要があります。すぐに使用できる EditTextCell では、入力フィールドのサイズ属性を設定することはできません。列幅のみを設定できます。

ここで ValidateableInputCell impl を見てください: In search for a GWT validation example... どこにいるの? カスタムセルの作成方法の例。

確かに、検証はまだ機能していませんが、セル内の入力フィールドにサイズを設定する機能は機能しています。

于 2012-02-18T04:31:24.283 に答える