我在我的项目中使用GWT2.3。 我想在用户点击editableTextCell时增加editableTextBox宽度。 问题是我的列宽是200 Px。当用户点击editableTextCell时,EditableTextCell中的TextBox宽度大约为125px,与列宽相比较小。
我在Celltable的专栏
中添加了EditTextCell列stringColumn = new Column(new EditTextCell()){ //我的代码 }
cellTable.addColumn(stringColumn,“MyColumn”); cellTable.setColumnWidth(checkBoxColumn,200,Unit.PX);
我尝试了以下方式来增加TextBox宽度,但问题是我无法在文本框中编辑+焦点而不是损失
@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宽度等于列宽。
任何解决方案?
答案 0 :(得分:3)
在我的项目中,我这样做:
cellTable.getColumn(cellTable.getColumnIndex(column)).setCellStyleNames(CELL_CSS);
.edit-cell input {
width: 290px;
}
答案 1 :(得分:1)
最后答案! 我通过添加:
尝试使用UIBinder更简单.edit-cell input {
width: 30px;
text-align: right;
}
然后对于我添加的单元格表
<c:CellTable
addStyleNames='{style.edit-cell}'
ui:field='itemTable' />
很棒!
答案 2 :(得分:0)
您需要创建自定义组件。开箱即用的EditTextCell不允许您设置输入字段的size属性,只允许设置列宽。
在这里查看ValidateableInputCell impl:In search of a GWT validation example... where art thou?以获取如何制作自定义单元格的示例。
不可否认,验证尚未奏效,但能够在单元格内的输入字段上设置大小。