Opened 12 years ago
Closed 8 years ago
#9547 closed defect (invalid)
[PATCH][CCLA] Editor: IE Horizontal scrollbar calc in view returns incorrectly.
Reported by: | Jared Jurkiewicz | Owned by: | Jared Jurkiewicz |
---|---|---|---|
Priority: | high | Milestone: | future |
Component: | DojoX Grid | Version: | 1.3.0 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description
Editor: IE Horizontal scrollbar calc in view returns incorrectly.
This problem was reported by a co-worker of mine. the problem he described is as follows:
When the contents of a cell become word wrapped, and one or more columns are locked from scrolling horizontally -- the bottom most rows become mis-aligned.
This can easily be seen using the following nightly test: http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/test_grid_column_display.html
Open that testcase in IE and resize the Climate header to the right until the horizontal scrollbar appeats for the right view. Notice the left view doesn't rescale itself to account for the horizontal scrollbar in the right. This cases rpbolems when you scroll to the bottom. It makes the alignment go off.
See attached screenshot for details.
This is caused by IE returning bad values for scrollBoxNode.offsetWidth in the function:
dojox.grid._Views.js (Function hasHScrollbar)
If you compare that value to what dojo.contentBox returns, you will see that the offsetWidth value is bigger than its actual size. Ugh.
We shouldn't use dojo.contentBox as it's very expensive, but there is a simpler solution (Thanks DougHays?!):
this._hasHScroll = (this.scrollboxNode.scrollWidth > this.scrollboxNode.clientWidth);
Instead of: this._hasHScroll = (this.scrollboxNode.offsetWidth > this.contentBoxNode.offsetWidth);
It's cross-browser save and actually does the right thing on IE!
Patch forthcoming.
Attachments (8)
Change History (24)
Changed 12 years ago by
Attachment: | GridScroll_IE_PROBLEM.jpg added |
---|
Changed 12 years ago by
Attachment: | GridScroll_IE_PROBLEM_SCROLL.jpg added |
---|
What happens when you scroll.
comment:1 Changed 12 years ago by
Summary: | Editor: IE Horizontal scrollbar calc in view returns incorrectly. → [PATCH][CCLA] Editor: IE Horizontal scrollbar calc in view returns incorrectly. |
---|
the vertical scrollbar could also have the same problem, so I adapted it to use the same logic (Just checking scrollHeight and clientHeight instead of width).
See patch for details.
Test results coming soon. The good thing is this avoids dojo.contentBox(), which is expensive.
comment:2 Changed 12 years ago by
Tested in:
IE 8, IE 7, IE 6, FF 2, FF 3, Safari 3.2.3, and Google Chrome 1.0 without problem.
Tested in co-workers application and also verified for complex app, the fix worked.
comment:3 Changed 12 years ago by
Nathan Toone replied to review request (g-mail), that this looked to be the right fix for the issue. So ... I'll commit it.
comment:4 Changed 12 years ago by
comment:5 Changed 12 years ago by
This fix didn't solve all my row alignment issues. I had additional issues in IE when the data model would update and the grid refreshed. I had to modify
adaptHeight: function( minusScroll )
because it wasn't removing the height of the scrollbar from views that were set to noScroll but were obviously being affected by views that did have a scrollbar.
comment:6 Changed 12 years ago by
Okay, so combined with some fixes from Nathan he checked in last night, I have a followon patch that seems to make IE behave fine now in this case. I also have a testcase showing the grid.update() issue on IE and that this patch fixes it. I'll attach both.
Changed 12 years ago by
Attachment: | testScroller.html added |
---|
Testcase showing the issue with grid.update()
comment:7 Changed 12 years ago by
Owner: | changed from Bryan Forbes to Nathan Toone |
---|
Nathan,
The last two attachments are the testcase and another slight patch to fix the final issue (so far) with IE and scrolling (with fixed views).
To see the bug, put the testcase in the root of your trunk extract so it's a peer to dojo/ dijit/, etc.
Run it in IE (6 or 7), scroll to the bottom.
Click the 'update' button (which calls grid.update()).
The rows will misalign.
Apply the IE_Improved.patch to the tree, then clear cache and rerun test. Problem should be gone. It required tweaking the hasHScrollbar again (probably due to a timing issue), but it's not a substantial change. The check I had put in didn't work in this case (and again, likely due to timing of IE rendering).
Changed 12 years ago by
Attachment: | IE_improved.patch added |
---|
Improved IE patch for scroll alignment issues.
comment:8 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:9 Changed 12 years ago by
Resolution: | fixed |
---|---|
Status: | closed → reopened |
The modification 18824 does not work for me on FF 3.0.12 or IE8 XP/32 (no problems on Opera 10b2)
The error I am getting is on line _View.js 536
if(v !== self && v.hasHScrollbar()){
The error is v.hasHScrollbar is not a function
on IE8 I get the error on the same line, saying "Object does not support this property or method"
It works on opera 10b2 though
Something is wrong now with my pages on Safari 4.0 (but I could not pinpoint safari problems yet).
on that line I mad a modification
if(v !== self && dojo.isFunction(v.hasHScrollbar) && v.hasHScrollbar()){
(that is added dojo.isFunction)
and now IE8 and FF 3.0.12 work
I am not quite sure if my fix has any meaning to you guys. As it simply disables something you appear to want to use.
My grids are nothing special, elasticView is 2 using JsonRestStore?, no autoheight or any other parameters
They sit within a resizible border container content pane.
comment:10 Changed 12 years ago by
would you be able to sanitize your code to an attachable test case? I'm wondering if the problem is actually something else, because for any value of "v" in this code, it *should* be a dojox.grid._View object...which has a "hasHScrollbar" function....so I'd like to investigate why it's coming in like that...
comment:11 Changed 12 years ago by
I am having difficulties replicating this in an independent test case. I coded the layout to be the same (but different column/and col values -- those are difficult to replicate in test case)
Also in my real page, every grid is connected to a different store, but in the test, they are connected to the same rest store.
I put a delay of 1 second in my PHP backend simulator, and disabled caching on every grid (so that the query is not cached by the store). Just to see see if loading the grids at different times can cause a problem. But that did not replicate it for me either...
I have 3 grids in my page I put a console.log every time adaptHeight is 'entered' and with the for loop in that function for every view
Every time I run it happens on a 'different' view (or so it appears)
can you spot may be something in those logs that would help me to figure out what exactly to replicate
In the mean time, I am attaching my 'test replication program' that consists of two php files (one is just a HTML) and the other is a backend for reststore (very simple one no, db access/etc).
Unfortunately it does not replicate it though....
entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] GET http://192.168.0.106/codeigniter/index.php/rest_cr...service/services?action=query&query=&queryOptions= GET http://192.168.0.106/codeigniter/index.php/rest_crmd_service/services?action=query&query=&queryOptions= 200 OK
204ms bootstrap.js (line 1298)
entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] GET http://192.168.0.106/codeigniter/index.php/rest_cr...d_tariff/tariffs?action=query&query=&queryOptions= GET http://192.168.0.106/codeigniter/index.php/rest_crmd_tariff/tariffs?action=query&query=&queryOptions= 200 OK
160ms bootstrap.js (line 1298)
GET http://192.168.0.106/dojo-svn/dijit/layout/templates/_TabButton.html GET http://192.168.0.106/dojo-svn/dijit/layout/templates/_TabButton.html 304 Not Modified
26ms hostenv_...rowser.js (line 254)
entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_5] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_10] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_5] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_10] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_11] _connects=[14] _subscribes=[0] adaptHeight view is: function() v.hasHScrollbar is not a function [Break on this error] (986 out of range 496) bootstrap.js (line 986) entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0]
--- RUN 2 START ----
entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] GET http://192.168.0.106/codeigniter/index.php/rest_cr...service/services?action=query&query=&queryOptions= GET http://192.168.0.106/codeigniter/index.php/rest_crmd_service/services?action=query&query=&queryOptions= 200 OK
156ms bootstrap.js (line 1298)
entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] GET http://192.168.0.106/codeigniter/index.php/rest_cr...d_tariff/tariffs?action=query&query=&queryOptions= GET http://192.168.0.106/codeigniter/index.php/rest_crmd_tariff/tariffs?action=query&query=&queryOptions= 200 OK
237ms bootstrap.js (line 1298)
GET http://192.168.0.106/dojo-svn/dijit/layout/templates/_TabButton.html GET http://192.168.0.106/dojo-svn/dijit/layout/templates/_TabButton.html 304 Not Modified
25ms hostenv_...rowser.js (line 254)
entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_5] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_10] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_5] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_10] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_11] _connects=[14] _subscribes=[0] adaptHeight view is: function() entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_1] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_2] _connects=[14] _subscribes=[0] v.hasHScrollbar is not a function [Break on this error] (986 out of range 496) bootstrap.js (line 986) entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] adaptHeight view is: [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_7] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._RowSelector, dojox_gridRowSelector_3] _connects=[14] _subscribes=[0] entered adaptHeight for [Widget dojox.grid._View, dojox_gridView_6] _connects=[14] _subscribes=[0]
--- RUN 2 END ---
Changed 12 years ago by
Attachment: | REST_WIDGETS_TOGETHER.php added |
---|
(vlad_dojo) 3 grids and a filtering select connected to same store
Changed 12 years ago by
Attachment: | json_rest_store_backend_some_itms.php added |
---|
(vlad_dojo) backed for 3 grids and filtering select
comment:12 Changed 12 years ago by
I cleaned up my 'debugging code' in _View.js (sorry for the mess above)
And basically in FF 3.0.12 it is always erroring out on the same grid
afari 4.0 it is also erroring out on either the same grid as FF3 or another grid (if the first one is disabled)
There are 3 grids there in total and only those 2 sofar are erroring out (they have different stores and different layouts). idOffersGr sits within a content pane of a tab container while idServicesGr sits in the content pane of a border container
FF3.0.12
hasHScrollbar problem TypeError: v.hasHScrollbar is not a function message=v.hasHScrollbar is not a function self was: [Widget dojox.grid._View, dojox_grid__View_6] _connects=[14] _subscribes=[0] grid id was idOffersGr hasHScrollbar problem TypeError: v.hasHScrollbar is not a function message=v.hasHScrollbar is not a function self was: [Widget dojox.grid._View, dojox_grid__View_6] _connects=[14] _subscribes=[0] grid id was idOffersGr
Safari 4.0
hasHScrollbar problem [ Error: Result of expression 'v.hasHScrollbar' [undefined] is not a function. ] self was: {dojox_grid__View_6} grid id was idOffersGr hasHScrollbar problem [ Error: Result of expression 'v.hasHScrollbar' [undefined] is not a function. ] self was: {dojox_grid__View_6} grid id was idOffersGr THIS IS SAFARI
and if I disable that grid, (idOffersGr)
FF does not complain, but Safari 4.0 complains about another grid
hasHScrollbar problem [ Error: Result of expression 'v.hasHScrollbar' [undefined] is not a function. ] self was: {dojox_grid__View_2} grid id was idServicesGr hasHScrollbar problem [ Error: Result of expression 'v.hasHScrollbar' [undefined] is not a function. ] self was: {dojox_grid__View_2} grid id was idServicesGr hasHScrollbar problem [ Error: Result of expression 'v.hasHScrollbar' [undefined] is not a function. ] self was: {dojox_grid__View_2} grid id was idServicesGr hasHScrollbar problem [ Error: Result of expression 'v.hasHScrollbar' [undefined] is not a function. ] self was: {dojox_grid__View_2} grid id was idServicesGr
Here is my code in _View.js that prints the above line
var checkOtherViewScrollers = function(){ var v; for(var i in self.grid.views.views){ v = self.grid.views.views[i]; try { if(v !== self && v.hasHScrollbar()){ return true; } } catch (e) { console.log("hasHScrollbar problem ", e); console.log("self was: ", self); console.log('grid id was ', self.grid.id); return false; } } return false; };
Opera 10B does not error out, and IE8 errors out on the idOffersGr
It feels like a timing/conflict problem but I just cannot replicate it separately.
The two grids in question are declared in markup and have the following
<div id="idServicesGr" dojoType="dojox.grid.DataGrid" elasticView="2" query="{ srvc_def_id: '*' }" queryOptions="{cache:true,VSPGRIDOPT:3333}" rowsPerPage="10" store="crmServicesStore" structure="layoutCRMServices" rowSelector="20px" onRowDblClick="ServicesOrTarGrDblClk" > </div>
<div id="idOffersGr" dojoType="dojox.grid.DataGrid" elasticView="2" query="{ offr_def_id: '*' }" queryOptions="{cache:true}" rowsPerPage="10" store="crmOffersStore" structure="layoutCRMOffers" rowSelector="20px" onRowDblClick="OffrDblClk" > </div>
comment:13 Changed 12 years ago by
Milestone: | tbd → future |
---|
comment:15 Changed 8 years ago by
Owner: | set to Jared Jurkiewicz |
---|---|
Status: | reopened → pending |
Jared, is this still relevant? It would need to be updated to AMD and tested against 1.9.
comment:16 Changed 8 years ago by
Resolution: | → invalid |
---|---|
Status: | pending → closed |
Because we get so many tickets, we often need to return them to the initial reporter for more information. If that person does not reply within 14 days, the ticket will automatically be closed, and that has happened in this case. If you still are interested in pursuing this issue, feel free to add a comment with the requested information and we will be happy to reopen the ticket if it is still valid. Thanks!
Screenshot showing issue.