Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Progressing loading is not working with ComboBoxItem (SmartClient Version: v12.1p_2021-10-19)

    Progressing loading is not working with ComboBoxItem. Below is how the field if defined :

    {
    name:"locationName",
    editorType: "ComboBoxItem",
    wrap:true,
    width:500,
    title: event_location,
    prompt: event_location,
    endRow:"true",
    valueField:"value",
    displayField:"value",
    optionDataSource:"locationDS",
    allowEmptyValue: false,
    filterLocally: false,
    cachePickListResults: false
    }

    We are not setting endRow so that call ComboBoxItem should keep calling backend when user types in but backend calls stop after typing few letter. After removing some letters, call again goes back to the backend but stops again when typing ahead, this does not let user filter the full dataset that backend has. We are using this filter locations which has huge dataset which can not be loaded on UI all at once.












    #2
    Hi Ashish
    It sounds like after typing a few characters and filtering the data remotely, the system believes it has picked up the full set of available records and so will start filtering the data locally.
    This implies the server response has specified a "totalRows" value that matches the size of the data set returned / the dsResponse.endRow.

    Whether or not you have progressive loading enabled this shouldn't be happening if there is additional server data unless you've written custom server logic to populate the endRow/totalRows attributes of a DSResponse. Standard SQLDataSource behavior will use a rowCount SQL query to determine the true total data set size for the specified criteria, so if there are more records available than were requested the client should be aware of this and continue to issue fetch requests to pick up those rows when necessary [typically when scrolling to the end of a list, or when applying additional filter criteria]

    Aside from that, it's not clear from your description whether progressiveLoading is actually applied in your case.
    As the docs state, you should be able to set a "progressiveLoading" attribute on the DataSource, on an operationBinding, on a DSRequest, or on the form item itself depending on how broadly you want this pattern applied:
    https://smartclient.com/smartclient-...ressiveLoading

    You should be able to see whether this pattern is enabled for specific requests by looking at the dsResponse.totalRows value in responses in the "RPC" tab of the developer console.
    When progressive loading is enabled, rather than a row-count-query being issued to provide a true row count, the system will always advertise a value somewhat higher than the requested endRow which will cause additional server fetches to be issued when the system attempts to display rows beyond the "endRow" of previous fetches.

    Regards
    Isomorphic Software

    Comment

    Working...
    X