populating an MSFlexgrid

Take a look at the following code, basically all I'm doing is getting a session variable from another page and converting it to a standard variable. Then creating an array to populate an MSFlexGrid.

When I try to run the code as the page loads I get an error message Object Required G was not handled, (G is the name of my MSFlexGrid)

However, if I place this code in a sub, the page loads first and then I execute the code and it works fine - presumably because my MSFlexGrid (G) exists on the page, where as it doesn't in the earlier scenario.

How can I populate this grid when the page loads and remove the need for a click event.

Looking forward to your help.

Matt.

<SCRIPT LANGUAGE=vbscript>
Dim retVar
Dim i
Dim j
Dim SessConv
Dim a
Dim pos
Dim z
Dim w
Dim max    ' max number of elements
Dim count
   
SessConv = "<%=session("ses_search")%>"

    ReDim a(<%=session("ses_FirstDimUBound")%>, <%=session("ses_SecondDimUBound")%>)
    max = (UBound(a, 1) - LBound(a, 1) + 1) * (UBound(a, 2) - LBound(a, 2) + 1)
    count = 0
           
    For I = LBound(a, 2) To UBound(a, 2)
        ' Process 2nd dimension element for each 1st dimension values
        For J = LBound(a, 1) To UBound(a, 1)
            count = count + 1
            If count > max Then
                Exit For
            Else
                pos = InStr(SessConv, "#")
                if pos = 0 then
         a(J, I) = ""
                else
         a(J, I) = Left(SessConv, pos - 1)
                end if                
                SessConv = Mid(SessConv, pos + 1)
            End If
        Next
       
        If count > max Then Exit For
    Next
      
       retVar = a 'at this point retvar contains all the required data in an array

g.Rows = UBound(retVar, 2) + 1 ' code fails here on the 1st ref to g
g.Cols  = UBound(retVar, 1) + 1
g.FixedCols=0
g.FixedRows=1

for z=0 to g.Cols - 1
      g.TextMatrix(0, z) = "Column #" & z
      g.ColAlignment(z) = flexAlignRightCenter
      g.ColWidth(z) = 2000      
next
'g.width = g.ColWidth(0) + g.ColWidth(1) + g.ColWidth(2) + g.ColWidth(3) + g.ColWidth(4) + g.ColWidth(5)


      for z = g.FixedRows to g.Rows - 1
            for w = g.FixedCols to g.Cols - 1
                  g.TextMatrix(z, w) = retVar(w, z)

            next
      next
</SCRIPT>
Matt_UnsworthAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

fz2hqsCommented:
"Then creating an array to populate an MSFlexGrid" - not in ths code snippet, there is no creating
0
Matt_UnsworthAuthor Commented:
Good point, the array is created in the previous page and passed to this page as a string.

The value retvar contains what I want but the problem still stands of populating g, any ideas how I can do this.

I think that g does not exist when I try to populate it in the code above, how can I get around this.

Matt.
0
fz2hqsCommented:
If the object is created in the last page, then it is also destroyed at the end of execution of the last page. You need quite simply to create G within this page you can pass values in string form but you will have to create it here

PS - You may want to avoid naming variables like you do, it is far easier for everybody (yourself included) if you try naming things like intLoopCount, grdMyFlexiGrid  - a's b's and z's are meaningless and make reading code difficult
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Servers

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.