views:

208

answers:

1

I'm building a wholesale order form on a website. The current plan is to...

-get an ArrayList of DepartmentUnits

-a DepartmentUnit has various attributes like "deptId", "description" and its own ArrayList of StoreItems

-The StoreItems have attached ArrayList of various SizeOptions

-The SizeOptions have an inventory count integer along with their description

-Planning on putting an asp:Repeater on the page that has an asp:GridView in it

-Each DepartmentUnit will have its own GridView

-EachStore item will have a row in the GridView

-Each SizeOption will have a TextBox in the row (approximately 10 options)

-Each inventory count will be watermarked over the size option textbox

The question becomes how will I then collect all this information correctly once the form has been filled out? I don't like the idea of putting all this information in an update panel and then posting back each time a GridView row or worse one of the row's textboxes changes.

Any advice on putting a single save button on the page and looping through each Repeater item - and each GridViewRow - and each textbox - to get all the values entered?

Better to try collecting all the items added in a single table at the bottom of the page and updating the string with jquery each time a text box is modified?

Then just looping through the new table when saved? Not sure I know how to loop through that table though - updating if quantity is changed might be a bear too.

If it considerably simplifies the process I could just remove the Repeater aspect and put separate GridViews on separate pages.

Thanks!

A: 

I decided to have the item key be on the GridView statically and build the other columns dynamically. Then using foreach (GridViewRow gvr in gvMain) I can loop through each row and FindControl each textbox. After finding a textbox if the value has a quantity I add it to an ArrayList and keep going. Once done I'll loop through my ArrayList and adjust my shopping cart.

tnriverfish
Avoid using arrayLists. Use a typed List<StoreItem> collectioninstead.
David Lively
is that because ArrayLists cost more memory?
tnriverfish