We are using Smart GWT 2.5 (power edition) and are facing an issue with a ComboBoxItem.
The ComboBoxItem is bound to a DataSource and is placed within a Window widget. The problem is that the data for the PickList is not always re-fetched: If a user logs out from the application (which destroys the Window with the ComboBoxItem) and another user logs in (creating a new Window), there is no re-fetch. Instead the ComboBoxItem's pick list shows the old values. So, although autoFetchData is set to false, there is not always a fetch operation performed, when the pick list is first opened.
ComboBoxItem configuration:
DataSource definition
DSRequest (is not always performed)
The ComboBoxItem is bound to a DataSource and is placed within a Window widget. The problem is that the data for the PickList is not always re-fetched: If a user logs out from the application (which destroys the Window with the ComboBoxItem) and another user logs in (creating a new Window), there is no re-fetch. Instead the ComboBoxItem's pick list shows the old values. So, although autoFetchData is set to false, there is not always a fetch operation performed, when the pick list is first opened.
ComboBoxItem configuration:
Code:
logSymId = new StyledComboBoxItem(Consts.F_LOG_SYM_ID); logSymId.setTitle("System"); logSymId.setOptionDataSource(DataSource .get(Consts.DS_AM_LOGIN_CREATE_SYSTEM)); logSymId.setValueField(Consts.F_SYM_ID); logSymId.setDisplayField(Consts.F_SYM_NAME); logSymId.setSortField(Consts.F_SYM_NAME); logSymId.setSelectOnFocus(true); logSymId.setAutoFetchData(false); logSymId.setTextMatchStyle(TextMatchStyle.STARTS_WITH); logSymId.setRequired(true); logSymId.setAddUnknownValues(false); logSymId.setWidth(255); logSymId.addChangedHandler(new ChangedHandler() { @Override public void onChanged(ChangedEvent event) { onChangedLogSymId(); } });
Code:
<?xml version="1.0" encoding="UTF-8"?> <DataSource ID="am_login_create_system" serverType="sql" tableName="sdm$vi_web_system" cacheAllData="false"> <fields> <field name="sym_id" type="integer" required="true" primaryKey="true" /> <field name="sym_name" type="text" required="true" length="200" /> <fiele name="sym_sty_id" type="integer" required="true" /> </fields> <serverObject lookupStyle="new" className="de.tmobile.sdom.frontend.server.dmi.ReadOnlyBaseDMI" /> <operationBindings> <operationBinding operationType="fetch"> <tableClause>sdm$vi_web_system inner join (select distinct lot_sym_id, ltp_lpt_id from sdm$vi_web_curuser_log_type_pr inner join sdm$vi_web_login_type on ltp_lot_id=lot_id) on sym_id = lot_sym_id</tableClause> <whereClause>ltp_lpt_id = 1 and ($defaultWhereClause) </whereClause> </operationBinding> </operationBindings> </DataSource>
DSRequest (is not always performed)
Code:
{ "dataSource":"am_login_create_system", "operationType":"fetch", "data":null, "resultSet":[ResultSet ID:isc_ResultSet_7 (created by: undefined)], "callback":{ "caller":[ResultSet ID:isc_ResultSet_7 (created by: undefined)], "methodName":"fetchRemoteDataReply" }, "willHandleError":true, "showPrompt":true, "oldValues":null, "clientContext":{ "requestIndex":1 }, "requestId":"am_login_create_system$62719" }
Comment