Hi,
I have got a problem with event ListGrid.rowEditorEnter not triggered in some circumstances on mobile device (also observed in browser's responsive mode).
In the following example there is a ListGrid with person field of type ComboBoxItem as a first column. If you run this example and double click first row and first column (person) to enter grid's edit mode, you will see a notification as a result of rowEditorEnter event.
Here is video of example running in desktop browser:

Now, if you switch to browser's responsive mode and run the same example again, you will not get a notification - rowEditorEvent is not triggered this time:

There are no warnings or errors on the developers console.
Example code is:
Latest SmartClient Version: v12.1p_2020-07-10/LGPL Development Only (built 2020-07-10)
Browser: Chromium 80.0.3987.162 (Build) (64-bit)
Thanks,
MichalG
I have got a problem with event ListGrid.rowEditorEnter not triggered in some circumstances on mobile device (also observed in browser's responsive mode).
In the following example there is a ListGrid with person field of type ComboBoxItem as a first column. If you run this example and double click first row and first column (person) to enter grid's edit mode, you will see a notification as a result of rowEditorEnter event.
Here is video of example running in desktop browser:
Now, if you switch to browser's responsive mode and run the same example again, you will not get a notification - rowEditorEvent is not triggered this time:
There are no warnings or errors on the developers console.
Example code is:
Code:
package pl.com.tech4.client;
import com.google.gwt.core.client.EntryPoint;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.DataSourceField;
import com.smartgwt.client.data.OperationBinding;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.types.AutoFitWidthApproach;
import com.smartgwt.client.types.DSDataFormat;
import com.smartgwt.client.types.DSOperationType;
import com.smartgwt.client.types.DSProtocol;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.form.fields.ComboBoxItem;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.events.RowEditorEnterEvent;
import com.smartgwt.client.widgets.grid.events.RowEditorEnterHandler;
import com.smartgwt.client.widgets.grid.events.RowEditorExitEvent;
import com.smartgwt.client.widgets.grid.events.RowEditorExitHandler;
public class MainEntryPoint implements EntryPoint {
public void onModuleLoad() {
layout();
// SC.showConsole();
}
private void layout() {
DataSource departmentDS = new DataSource();
departmentDS.setID("Department");
departmentDS.setClientOnly(true);
OperationBinding fetchBinding = new OperationBinding();
fetchBinding.setOperationType(DSOperationType.FETCH);
fetchBinding.setDataFormat(DSDataFormat.XML);
fetchBinding.setDataProtocol(DSProtocol.POSTXML);
departmentDS.setOperationBindings(fetchBinding);
departmentDS.setDataURL("Department.xml");
DataSource personDS = new DataSource();
personDS.setID("Person");
personDS.setClientOnly(true);
personDS.setOperationBindings(fetchBinding);
personDS.setDataURL("Person.xml");
DataSourceField idField = new DataSourceField();
idField.setName("id");
idField.setPrimaryKey(true);
idField.setHidden(true);
DataSourceTextField codeField = new DataSourceTextField();
codeField.setName("code");
DataSourceTextField descriptionField = new DataSourceTextField();
descriptionField.setName("description");
personDS.setFields(idField, codeField, descriptionField);
DataSourceField idDepField = new DataSourceField();
idDepField.setName("id");
idDepField.setPrimaryKey(true);
idDepField.setHidden(true);
DataSourceField personField = new DataSourceField();
DataSourceField person_idField = new DataSourceField();
DataSourceTextField person_codeField = new DataSourceTextField();
DataSourceTextField person_descriptionField = new DataSourceTextField();
personField = new DataSourceField();
personField.setName("person");
personField.setForeignKey("Person.id");
personField.setValueXPath("person/id");
ComboBoxItem personItem = new ComboBoxItem("person");
personItem.setOptionDataSource(personDS);
personItem.setValueField("id");
personItem.setDisplayField("code");
personItem.setPickListFields(new ListGridField("id"), new ListGridField("code"));
personField.setEditorProperties(personItem);
personField.setFilterEditorProperties(personItem);
departmentDS.addField(personField);
person_idField = new DataSourceField();
person_idField.setName("person" + "_id");
person_idField.setPrimaryKey(true);
person_idField.setValueXPath("person/id");
departmentDS.addField(person_idField);
person_codeField = new DataSourceTextField();
person_codeField.setName("person" + "_code");
person_codeField.setValueXPath("person/code");
departmentDS.addField(person_codeField);
person_descriptionField = new DataSourceTextField();
person_descriptionField.setName("person" + "_description");
person_descriptionField.setValueXPath("person/description");
departmentDS.addField(person_descriptionField);
ListGrid lg = new ListGrid();
lg.setDataSource(departmentDS);
lg.setShowFilterEditor(true);
lg.setAllowFilterOperators(true);
lg.setCanEdit(true);
lg.setAutoSaveEdits(false);
lg.setWidth100();
lg.setHeight100();
lg.setAutoFitFieldWidths(true);
lg.setAutoFitWidthApproach(AutoFitWidthApproach.BOTH);
lg.setAutoFitExpandField("description");
lg.setConfirmDiscardEdits(false);
lg.setStopOnErrors(true);
lg.setModalEditing(false);
lg.addRowEditorEnterHandler(new RowEditorEnterHandler() {
@Override
public void onRowEditorEnter(RowEditorEnterEvent event) {
SC.notify("RowEditorEnter");
}
});
lg.addRowEditorExitHandler(new RowEditorExitHandler() {
@Override
public void onRowEditorExit(RowEditorExitEvent event) {
SC.notify("RowEditorExit");
}
});
lg.draw();
lg.fetchData();
}
}
Browser: Chromium 80.0.3987.162 (Build) (64-bit)
Thanks,
MichalG
Comment