2008-09-18 181 views
5

从传统的ASP背景来看,我习惯于在页面上使用多个表单,但是这在ASP.NET页面中显然是有限的。ASP.NET页面上的多个表单

但是,我有一种情况,我有一个表单,收集来自用户的输入,将数据保存到数据库,然后我想渲染(并调整值)一个特殊的表单,张贴到贝宝网站。

如果贝宝形式的字段值是静态的,不会有什么问题,但因为我要处理的形式,服务器端(来调整数量,递减,价格字段等等)这是一个问题。

在写入数据库后,我正在考虑重定向到不同的页面,我怀疑这会工作得很好,但这可能是一些额外的努力,可能是不必要的。

也有人向我建议,我可以编程方式渲染一个不同的表单,这取决于我在哪个周期中的位置。也就是说,使用一个占位符,并且在Page_Load上,我会首先添加一个数据库表单(完成子控件),并在回发后添加PayPal表单。

这种情况对于你们来说是非常常见的,所以我在寻找意见建议和任何相关的代码样本,如果你有首选的方法。

我知道我可以通过,但这个项目是一个学习工具,所以我想采用什么通过最佳实践。

在此先感谢...

克里斯

回答

8

你可以有多种形式,它只是一种形式可能有runat="server"属性。

有一堆让PayPal工作的答案;但因为它是一种可能会作弊的学习工具。诚实地说,我会看看完整的PayPal API,而不是使用简单化的方式(具有额外的优势,它应该让你的学习更多)。

否则是,在服务器端表单之外设置一个HTML表单,并在其中添加一个文字并在其中写入零碎。

1

的基本方法是在页面上使用两个小组 - 一个用于第一种形式,另一个用于第二。

您可以根据要显示的表单(在page_load期间或渲染前的任何时间)更改这些面板的可见性属性。

1

也许我误解了这个问题,但是不能只在表单内部有2个div,其中只有一个在任何时候都可见。例如

<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> 

然后,在btnSubmitFirst_Click:

doSubmissionToPaypal.visible=True 
getUserInput.visible = false 

类似的规定?

0

该paypal的解决方法是使用Paypal Integration Code,因为Paypal并不总是最易于集成的。辛苦的工作基本上是为你完成的。

+0

我会看看这个,但因为这是一个学习练习,所以我想尽可能'手动'。 – CJM 2008-09-18 15:04:14

相关问题