Announcement

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

    Dropdown lists do not display more than 75 elements. Issue is observed on both Fi

    Dropdown lists do not display more than 75 elements. The issue is observed on both Firefox and IE.

    I have attached the screenshot that shows that data is not getting populated under <nobr> after the 75th element in the drop down, it simply continues to create such empty tr > td >nobr tags after 75 or so.

    You can refer to the attached html. I have captured that from browser's dom. I have zipped the html and put an extra .txt. So, please remove the .txt before you unzip the html file with the drop down list with empty items.

    Please treat that as urgent request.
    Attached Files
    Last edited by satya_paul; 27 May 2015, 07:06. Reason: need to add notification

    #2
    Please see the FAQ for the basics that are required to report bugs (dumps of DOM elements are generally not useful).

    Since this is urgent, be sure to follow the directions carefully to avoid another turnaround to gather basic information.

    Comment


      #3
      Dropdown lists do not display more than 75 elements. Issue is observed on both Fi

      For all UI purposes, we use Smartclient library version 10.0
      This issue is observed in all browsers including IE ver 9 & 10 and also Mozilla FF 31 onwards

      This is what the issue is

      We have 100+ directory entries (we call them as mailboxes) in our database
      We are populating all the entries to the UI and trying to list them in a dropdown list

      Please refer to the attachment, In this usecase we have 100 Mailbox entries in the list and expected to be displayed all in the Dropdown list, however only 76 entries are displayed and the remaining are not displayed on the UI, however li looks like there is a placeholder for all 100 entries. The highlighted entry is a placeholder for one entry, however it is not being displayed in the UI. If I count the number of entries in the Dropdown list I see it as 100, however only 76 are eing displayed.

      Regards,
      Harish
      Attached Files

      Comment


        #4
        You mention an attachment, but the only attachment we see here is a screenshot.
        What we really need to investigate this is a way to reproduce the problem - so typically a minimal test case we can run on our end which demonstrates the problem.

        We have numerous samples including SelectItems and ComboBoxItems bound to dataSources showing more than 75 records, so clearly the problem is not a fundamental breakage in the framework - there's something special about this use case.

        From what we do see: The screenshot itself appears to show the correct number of records, but the later records are not showing an actual value.
        We'd expect this if you have bad data being delivered by your dataSource -- records where the 'value field' is actually empty would show up in this way, so this would probably be a first thing to check. One way to approach this would be to look at the developer console's RPC tab and actually look at the data being supplied by the data source. Another would be to use the "Evaluate" area to investigate the state of the form item - see what "getValue()" and "getSelectedRecord()" return when you select an empty value. Perhaps evaluate the formItem.pickList.data to see what the actual record objects look like. Also, as always, check for any unexpected warnings in the log messages. The framework will often show warnings which indicate a problem in application code if applicable.

        If the above debugging suggestions don't yield an answer and you believe there's a framework bug here, the next step would probably be putting together a small test case demonstrating the problem.

        Regards
        Isomorphic Software

        Comment


          #5
          Here is what I have noticed.

          Here is the Datasource used for the drop down.

          isc.DataSource.create({
          fetchRecordXPath:"/Mailbox/Mailboxes/Mailbox",
          dropExtraFields:true,
          ID:"mailbox_DS",
          fields:[
          {
          name:"Path",
          title:"Path",
          type:"text",
          valueXPath:"@Path"
          }
          ]
          })

          It makes a remote process call (ajax) and that returns following set of data i.e. 75 records off 100 available records.

          //isc_RPCResponseStart-->[{data:[{Path:"/"},{Path:"/mbxlimittest00"},{Path:"/mbxlimittest01"},{Path:"/mbxlimittest02"},{Path:"/mbxlimittest03"},{Path:"/mbxlimittest04"},{Path:"/mbxlimittest05"},{Path:"/mbxlimittest06"},{Path:"/mbxlimittest07"},{Path:"/mbxlimittest08"},{Path:"/mbxlimittest09"},{Path:"/mbxlimittest10"},{Path:"/mbxlimittest11"},{Path:"/mbxlimittest12"},{Path:"/mbxlimittest13"},{Path:"/mbxlimittest14"},{Path:"/mbxlimittest15"},{Path:"/mbxlimittest16"},{Path:"/mbxlimittest17"},{Path:"/mbxlimittest18"},{Path:"/mbxlimittest19"},{Path:"/mbxlimittest20"},{Path:"/mbxlimittest21"},{Path:"/mbxlimittest22"},{Path:"/mbxlimittest23"},{Path:"/mbxlimittest24"},{Path:"/mbxlimittest25"},{Path:"/mbxlimittest26"},{Path:"/mbxlimittest27"},{Path:"/mbxlimittest28"},{Path:"/mbxlimittest29"},{Path:"/mbxlimittest30"},{Path:"/mbxlimittest31"},{Path:"/mbxlimittest32"},{Path:"/mbxlimittest33"},{Path:"/mbxlimittest34"},{Path:"/mbxlimittest35"},{Path:"/mbxlimittest36"},{Path:"/mbxlimittest37"},{Path:"/mbxlimittest38"},{Path:"/mbxlimittest39"},{Path:"/mbxlimittest40"},{Path:"/mbxlimittest41"},{Path:"/mbxlimittest42"},{Path:"/mbxlimittest43"},{Path:"/mbxlimittest44"},{Path:"/mbxlimittest45"},{Path:"/mbxlimittest46"},{Path:"/mbxlimittest47"},{Path:"/mbxlimittest48"},{Path:"/mbxlimittest49"},{Path:"/mbxlimittest50"},{Path:"/mbxlimittest51"},{Path:"/mbxlimittest52"},{Path:"/mbxlimittest53"},{Path:"/mbxlimittest54"},{Path:"/mbxlimittest55"},{Path:"/mbxlimittest56"},{Path:"/mbxlimittest57"},{Path:"/mbxlimittest58"},{Path:"/mbxlimittest59"},{Path:"/mbxlimittest60"},{Path:"/mbxlimittest61"},{Path:"/mbxlimittest62"},{Path:"/mbxlimittest63"},{Path:"/mbxlimittest64"},{Path:"/mbxlimittest65"},{Path:"/mbxlimittest66"},{Path:"/mbxlimittest67"},{Path:"/mbxlimittest68"},{Path:"/mbxlimittest69"},{Path:"/mbxlimittest70"},{Path:"/mbxlimittest71"},{Path:"/mbxlimittest72"},{Path:"/mbxlimittest73"},{Path:"/mbxlimittest74"}],invalidateCache:false,isDSResponse:true,queueStatus:0,status:0,totalRows:101}]//isc_RPCResponseEnd

          Then it makes a second RPC (ajax) call that returns the remaining records.

          //isc_RPCResponseStart-->[{data:[{Path:"/mbxlimittest75"},{Path:"/mbxlimittest76"},{Path:"/mbxlimittest77"},{Path:"/mbxlimittest78"},{Path:"/mbxlimittest79"},{Path:"/mbxlimittest80"},{Path:"/mbxlimittest81"},{Path:"/mbxlimittest82"},{Path:"/mbxlimittest83"},{Path:"/mbxlimittest84"},{Path:"/mbxlimittest85"},{Path:"/mbxlimittest86"},{Path:"/mbxlimittest87"},{Path:"/mbxlimittest88"},{Path:"/mbxlimittest89"},{Path:"/mbxlimittest90"},{Path:"/mbxlimittest91"},{Path:"/mbxlimittest92"},{Path:"/mbxlimittest93"},{Path:"/mbxlimittest94"},{Path:"/mbxlimittest95"},{Path:"/mbxlimittest96"},{Path:"/mbxlimittest97"},{Path:"/mbxlimittest98"},{Path:"/mbxlimittest99"}],invalidateCache:false,isDSResponse:true,queueStatus:0,status:0,totalRows:101}]//isc_RPCResponseEnd


          Now, while rendering the second set of data, instead of appending these data to the end of the existing list, it actually starts writing from the first records. So, it replaces the first 25 records (i.e. 0 to 24) with last 25 records (i.e. 75 - 99).

          However, we see the Javascript library still adds the blank 25 items to the end of the drop down list.

          Comment


            #6
            One immediate problem that can be spotted is that the second response lacks startRow and endRow. These are required, and in their absence, the response would be interpreted as being the first 25 records, exactly as you have seen.

            Comment

            Working...
            X