I've gotten a lot of useful information from everyone here, but I'm 
just short of going insane with the problem I am experiencing.

I have 2 aspx pages.  On page 1 (Trip.aspx) there are 2 links 
buttons, one for new Trip, one for Existing Trip.  
If the user clicks New, I append "new" to the querystring and move 
to page 2 (TripNewEdit.aspx)
If the user clicks Existing, I display a table with existing trip 
information from which the user selects a trip.  I then 
append "edit" to the querystring and move to page 2
(TripNewEdit.aspx) which I populate the appropriate textboxes.

Now, aside from the usual textbox entered data, each trip can 
have "n" trip legs (ie.-from Baltimore to DC, DC to San Fran...).  
The trip legs are in a server table which is displayed on 
TripNewEdit.aspx.  If its a new trip, I dynamically 
create 2 legs (row) in the table...if its an existing trip, I 
display the number of current legs.  Within the trip leg table is a 
link button to "Add" additional leg rows to the table. 
This calls the LegAddLink_Click event, which adds a new row 
appending the row number to the control name creating a unique ID.

The problem I am experiencing is that whenever I generate additional 
legs to the table, I have to regenerate all (existing & new) of the 
leg rows each time the page loads.  

Is there a way around this?  I'm having a hard time determining what 
I need to use Viewstate on, and/or if I can just apply it to the 
table as a whole.  It just seems like a lot of work to keep objects 
persisted. Then again, I'm sure I'm wrong.

Here is my pseudo code:

Sub Page_Init()
        If Querystring = "new" Then
                LoadNewTripTable()
        Elseif Querystring = "edit" then
                LoadExistingTable()
        End If

End Sub

Sub Page_Load()
'Nothing
End Sub

Sub LoadNewTable()
        'build initial 2 leg rows
        for row = 1 to 2
                BuildLegTable(row)
        Next

        ViewState("mode") = "new"
End Sub

Sub LoadExistingTable()
        'Populate existing text boxes
        
        'build leg rows based on legs
        for each row in triplegs
                BuildLegTable(row)
        Next

        ViewState("mode") = "edit"
End Sub

Function BuildLegTable(row)

        Dim tRow as NEw TableRow
        For cellCtr = 1 to 8 'there are 8 cells per row
                Dim tCell as New TableCell
                Select Case cellCtr
                ...
                newControl.id = "Name" & rowCtr
                tCell.Controls.Add(newControl)
                End Select
                tRow.Cells.Add(tCell)
        Next
        Table.Rows.Add(tRow)
End Function

Sub LegAddLink_Click()
        Dim passThruCnt As Boolean ' used to check to see if on a 
new record this is the first time thru so that we know to start with 
row #3  

        If Page.IsPostBack Then
        
        If Viewstate("mode") = "new" And ViewState("passThruCnt") = 
False Then
                rowBegin = 3 'first time around, begin & end with 
row #3
                rowEnd = 3
        Elseif Viewstate("mode") = "new" And ViewState
("passThruCnt") = True Then
                rowBegin = 3 'have to begin with row #3 again in 
order to properly regenerate the new rows.
                rowEnd = ViewState("rowCnt") ' contains the total 
number of rows after new row was added (see below)
        Elseif Viewstate("mode") = "edit" And ViewState
("passThruCnt") = False Then
                'rowBegin = 'haven't gotten this far yet
                'rowEnd = '
        End if

        for row = rowBegin to rowEnd
                BuildLegTable(rowCtr)
        next
        
        Viewstate("rowCnt") = Leg.Rows.Count 'gets new count of 
table rows
        Viewstate("passThruCnt") = True
End Sub

'*********
Any and all help is greatly appreciated.  Thanks!






------------------------ Yahoo! Groups Sponsor --------------------~--> 
Get fast access to your favorite Yahoo! Groups. Make Yahoo! your home page
http://us.click.yahoo.com/dpRU5A/wUILAA/yQLSAA/saFolB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/AspNetAnyQuestionIsOk/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to