ASP.NET页上的多种表单
来自经典的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
遵循这些原则吗?
此贝宝的一种解决方法是使用贝宝集成代码,因为贝宝并不总是最易于集成。辛苦的工作基本上已经为我们完成。