[英]Paypal Form Ruins My ASP.NET webforms layout -> How to Solve?
我是一名正在asp.net中建立一個簡單網站的學生。 我的問題是,我希望將Paypal集成到其中一個頁面上,但是asp.net有一個荒謬的 <form runat="server">
正在阻礙我。 我正在使用blueprint css構建一個簡單的站點布局,這是一個非常基本的三列布局。 但是,我需要我的主要內容部分能夠使用paypal表單(立即購買按鈕),以及網站的其他區域使用用戶控件,我認為這需要將它們包裹在那個惱人的表單標簽中。 實際上,我希望在站點主要部分的頂部有一個站點地圖路徑控制:非常基本的東西。 我怎么能實現這一目標? 我的問題是:我不能把Paypal按鈕放在窗體中,我不知道如何將第4個div移動到位。 我甚至不確定div和表格是如何堆疊在一起的。
我能得到一些幫助嗎?
有問題的頁面是: http : //clubofpep.org/sandbox/sandbox_Alumni.aspx 。
與流行的看法相反,您可以在ASP.Net webforms頁面上擁有多個表單。 你不能做的是使用runat =“server”有多個表單,在ASP.Net的主表單中嵌套第二個表單,或者在主表單之外使用asp.net服務器控件。
因此,要將單獨的paypal表單與asp.net webforms頁面的其余部分集成,您必須確保可以在頁面上的所有 asp.net Web控件之前或之后放置它,然后編輯aspx標記以確保您的paypal表單完全不在asp.net的表單之外。
另一件事是快速網絡搜索顯示為asp.net編寫的眾多paypal控件,它將與所需的asp.net表單一起提交付款。 你可以嘗試其中一個。
namespace CustomForm
{
public class GhostForm : System.Web.UI.HtmlControls.HtmlForm
{
protected bool _render;
public bool RenderFormTag
{
get { return _render; }
set { _render = value; }
}
public GhostForm()
{
//By default, show the form tag
_render = true;
}
protected override void RenderBeginTag(HtmlTextWriter writer)
{
//Only render the tag when _render is set to true
if (_render)
base.RenderBeginTag(writer);
}
protected override void RenderEndTag(HtmlTextWriter writer)
{
//Only render the tag when _render is set to true
if (_render)
base.RenderEndTag(writer);
}
}
}
用法:
ASPX:
<%@ Register TagPrefix="CF" Namespace="CustomForm" Assembly="CustomForm" %>
<body>
<CF:GhostForm id="mainForm" runat="server">
...
</body>
<img src="https://www.sandbox.paypal.com/en_US/i/btn/btn_xpressCheckout.gif"> <asp:Button ID="checkoutBtn" runat="server" OnClick="CheckButton_Click"
Text="Checkout" Width="100" CausesValidation="false" />
代碼隱藏:
protected void Page_Load(object sender, EventArgs e)
{
...
// Workaround for PayPal form problem
GhostForm mainForm = new GhostForm();
mainForm.RenderFormTag = false;
// Go ahead and submit to PayPal :)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.