I add "UIDragPanelContents" script to each of the items in the grid and calling "UIGrid.Reposition()" like you said but it is the same , including the items in the grid are in 1 row , not 20 rows like before . When I remove "UIGrid.Reposition()" , items are in 20 rows . Here is my ScrollView hierarchy :
UI Root (2D)
--Camera
----Anchor
------Panel
--------Scroll Bar Horizontal (UIScrollBar Script)
--------Scroll Bar Vertical (UIScrollBar Script)
--------ScrollView (UIPanel , UIDraggable Panel)
-----------Grid ( UIGrid )
--------------Item ( UIImage Button, UIDrag Panel Content )