簡體   English   中英

Paypal表單破壞了我的ASP.NET webforms布局 - >如何解決?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM