2008-09-18 28 views
5

Viniendo de un fondo ASP clásico, estoy acostumbrado a varios formularios en una página, pero esto está claramente limitado en una página ASP.NET.Múltiples formularios en la página ASP.NET

Sin embargo, tengo una situación en la que tengo un formulario que recopila información del usuario, guarda los datos en un DB y luego quiero procesar (y modificar los valores) un formulario especial que se envía a PayPal sitio web.

Si los valores de campos del formulario de PayPal eran estáticas, no habría ningún problema, pero como yo quiero manipular el lado del servidor forma (para ajustar el campo Cant, la descripción, precio, etc.) esta se ser un problema.

Estaba considerando redireccionar a una página diferente después de escribir en la base de datos, y sospecho que esto funcionaría bastante bien, pero es un esfuerzo adicional que puede ser innecesario.

También se me ha sugerido que podría representar de forma programática una forma diferente, dependiendo de en qué parte del ciclo estoy. Es decir, use un marcador de posición, y en Page_Load agregaría un formulario DB (completo con controles secundarios) inicialmente, y el formulario de PayPal después de una devolución de datos.

Este escenario tiene que ser uno común para ustedes, así que estoy buscando asesoramiento de opiniones y cualquier muestra de código relevante si tiene un enfoque preferido.

Sé que puedo salir adelante, pero este proyecto es un vehículo de aprendizaje, así que quiero adoptar lo que se considera mejor práctica.

Gracias de antemano ...

Chris

Respuesta

8

Puede tener varios formularios, es solo un formulario puede tener el atributo runat="server".

Existen varias respuestas para hacer que PayPal funcione; pero como es un vehículo de aprendizaje que puede estar haciendo trampa. Honestamente, me gustaría ver la completa API de PayPal en lugar de utilizar el método de la forma un tanto simplista (con la ventaja añadida de que debería extender su aprendizaje más).

De lo contrario, sí, configure un formulario HTML fuera del formulario del lado del servidor, y agregue un literal en él y escriba los bits y las piezas ahí.

1

Un enfoque básico es utilizar dos paneles de la página - una para la primera forma y otra para el segundo.

Puede cambiar la propiedad de visibilidad de estos paneles según la forma que desee visualizar (durante page_load o en cualquier momento antes de la representación).

1

Tal vez estoy malinterpretando la pregunta, pero no puede simplemente tener 2 divs dentro del formulario, donde solo uno es visible en cualquier momento. p.ej.

<form id="Form1" method="post" runat="server"> 
    <div id="getUserInput" visible="true"> 
      <asp:button id="btnSubmitFirst" /> 
    </div> 
    <div id="doSubmissionToPaypal" visible="false"> 
      <asp:button id="btnSubmitSecond" /> 
    </div> 
</form> 

Luego, en btnSubmitFirst_Click:

doSubmissionToPaypal.visible=True 
getUserInput.visible = false 

algo por el estilo?

0

Una solución para este paypal es utilizar el Paypal Integration Code ya que Paypal no siempre es el más amigable de integrar. El trabajo duro está hecho básicamente para ti.

+0

Echaré un vistazo a esto, pero ya que este es un ejercicio de aprendizaje, me gustaría hacerlo 'manualmente' si es posible. – CJM

Cuestiones relacionadas