ASP.NET页上的多种表单

时间:2020-03-06 14:20:39  来源:igfitidea点击:

来自经典的ASP背景,我习惯了页面上的多种表单,但这在ASP.NET页面中显然受到限制。

但是,在这种情况下,我有一个表单,该表单收集用户的输入,将数据保存到数据库,然后再渲染(并调整其值)特殊表单,该特殊表单发布到PayPal网站上。

如果PayPal表单的字段值是静态的,那将没有问题,但是由于我要在服务器端操作表单(调整数量,说明,价格字段等),因此这将成为问题。

我正在考虑在写入数据库后重定向到另一个页面,我怀疑这会很好地工作,但是这可能需要一些额外的工作。

还建议我根据自己所在的位置,以编程方式呈现不同的形式。也就是说,使用占位符,然后在Page_Load上首先添加一个DB Form(带有子控件),然后在Postback之后添加PayPal表单。

对于我们来说,这种情况已经很普遍了,因此,如果我们有首选的方法,那么我正在寻求意见建议和任何相关的代码示例。

我知道我可以实现,但是这个项目是一个学习工具,因此我想采用最佳做法。

提前致谢...

克里斯

解决方案

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

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

我们可以有多种形式,只有一种形式可能具有runat =" server"属性。

要使PayPal正常运作,有很多答案。但由于它是一种学习工具,可能会作弊。老实说,我将使用成熟的PayPal API,而不是使用过于简单的形式的方法(其添加优点是可以扩展学习范围)。

否则,请在服务器端表单之外设置HTML表单,并在其中添加文字并在其中写入点点滴滴。

也许我对这个问题有误解,但我们不能简单地在表单内有2个div,而在任何时候都只能看到一个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

遵循这些原则吗?

此贝宝的一种解决方法是使用贝宝集成代码,因为贝宝并不总是最易于集成。辛苦的工作基本上已经为我们完成。