Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple forms on ASP.NET page

Coming from a Classic ASP background, I'm used to multiple forms on a page, but this clearly limited in a ASP.NET page.

However, I have a situation where I have a form that gathers input from the user, saves the data to a DB, and afterwards I want to render (and tweak the values of) a special form that posts to the PayPal website.

If the PayPal form's field values were static, there would be no problem, but since I want to manipulate the form server-side (to tweak the qty, desc, price fields etc) this will be a problem.

I was considering redirecting to a different page after writing to the DB, and I suspect this would work fairly well, but it's a bit of extra effort that may be unneccessary.

It has also been suggested to me that I could programmatically render a different form, depending on where in the cycle I am. That is, use a placeholder, and on Page_Load I would add a DB Form (complete with child controls) initially, and the PayPal form after a Postback.

This scenario has got to be a common one for you guys, so I'm looking for opinions advice and any relevant code samples if you have preferred approach.

I know I can get by, but this project is a learning vehicle so I want to adopt what passes for best practice.

like image 861
CJM Avatar asked Sep 18 '08 10:09

CJM


2 Answers

You can have multiple forms, it's just only one form may have the runat="server" attribute.

There are a bunch of answers to getting PayPal to work; but as it's a learning vehicle that may be cheating. In all honesty, I'd look at the full-blown PayPal API rather than use the method of the somewhat simplistic form (with the added advantage that it should stretch your learning more).

Otherwise yes, set up an HTML form outside of the server side form, and add a literal into it and write the bits and pieces in there.

like image 74
blowdart Avatar answered Sep 25 '22 01:09

blowdart


A basic approach is to use two panels on the page - one for the first form and another for the second.

You can change the visibility property of these panels depending on which form you want to display (during page_load or any time before rendering).

like image 23
Oded Avatar answered Sep 21 '22 01:09

Oded