Uploaded image for project: 'ZK'
  1. ZK
  2. ZK-4077

sizedByContent and sizabled trigger delayed rerender breaking UI on next event

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Normal Normal
    • 8.6.1
    • 8.6.0
    • None
    • Security Level: Jimmy
    • None
    • ZK 8.6.1 S1

      Steps to Reproduce

      Run fiddle
      http://zkfiddle.org/sample/2tk050r/1-colSize-event-delayed
      -resize the column "1"
      -open bandbox

      Current Result

      The onColSize event is not sent at the end of the resize action.
      Instead, it is sent as piggybacked event in the next au request when opening bandbox (triggering onOpen in the bandbox)
      The au response contains the following commands in order:
      => open popup (and content)
      => listbox setSizedByContent(false)

      setSizedByContent(false) is the result of the user resizing a column (listbox sizing becomes manual).
      setSizedByContent(false) will also trigger rerender at client side, which will call all descendants of the listbox (including content of the the bandbox bandpopup) to rerender, but doesn't close the popup is the process of opening, which breaks the UI and decouple the popup from the anchor

      Expected Result

      Either:

      • setSizedByContent(false) should not rerender the listbox
        or
      • onColSize should be fired to server immediately when sizedByContent and sizable are both set to true.

      Debug Info

      Root Cause

      Workaround

      listen to onColSize on listhead. This will trigger the colSize event when completing the drag action and prevent queuing to next event.

      	<listbox sizedByContent="true">
      <!-- 	no event content, will still trigger and do nothing -->
      		<listhead sizable="true" onColSize="">
      

            DevChu DevChu
            MDuchemin MDuchemin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: