Announcement

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

    Data Binding Issue

    1. v12.0p_2022-12-02/LGPL Deployment
    2. Google Chrome - Version 116.0.5845.110 (Official Build) (x86_64)


    Hello,

    I believe I have discovered a data binding issue with the ComboBox item. If I enter an Item ID into the Combo Box field and then hit tab, if that ItemID is part of another ItemID.. often times the wrong item will be selected once I tab off the Item. Here is an example test case that I am running into:

    1. There are multiple Item IDs with 'IA' included as a string somewhere within the Item ID.
    2. There is also an Item ID that exactly matches 'IA'.
    3. When I type 'IA' into the field and then tab off the item, one of the other items will be selected instead of the exact matched Item 'IA'.
    4. I would expect that if I type in an exact match into the Item ID field that the exact match would be the selected Item ID upon immediately tabbing off the field.
    5. Please see below images for a visual illustration of the issue. For the image with the picklist shown, I gave the picklist a couple seconds to complete loading and the correct item is selected. For the other image, I type in 'IA' and immediately tab off the field and then the wrong Item ID is selected. The issue is our customers need to be able to enter data quickly and should be able to tab off an item quickly and have the exactly matched Item ID be the one that is selected.

    Has anyone encountered this with the version of Smart Client I'm using? Any potential workarounds? Thanks in advance for any input!
    Attached Files

    #2
    We'd need to see the config of the ComboBoxItem - if you can show minimal, standalone code that reproduces the issue, we can take a look. You can use a simple clientOnly DataSource to include your test data.

    Comment


      #3
      How can we get it to select the picklist record where the entered value exactly matches the valueField value?

      var dataSource = isc.DataSource.create({
      clientOnly: true,
      fields: [{
      name: "Country",
      title: "Country",
      primaryKey: true
      }],
      testData: [{
      Country: "Canadas"
      }, {
      Country: "Canada"
      }]
      })

      isc.DynamicForm.create({
      fields: [{
      name: "Country",
      title: "Country",
      type: "comboBox",
      optionDataSource: dataSource,
      completeOnTab: true,
      showPickListOnKeypress: true,
      valueField: "Country"
      }]
      })

      Comment


        #4
        When tab is pressed in a ComboBox, the correct UI is to pick whatever value is shown in a "selected" style, and, also, whenever search criteria are changed, the first value should always be the one shown in "selected" style.

        It would never be correct for a Combobox to do anything else, for example, for hitting tab to pick the second value shown because it's an exact match. In fact, doing this would be an accessibility violation.

        So to reframe what you want: you want shorter strings to sort first. That's the normal behavior of textual sort, so you just need to set sortField:"Country" in your example above, and do the corresponding thing in your real app situation.

        Comment

        Working...
        X