5

私は、asp.net で簡単な Web サイトを作成している学生です。私の問題は、ページの1つにPaypalを統合したいのですが、asp.netにはばかげ <form runat="server">たものがあり、邪魔になっています。非常に基本的な 3 列のレイアウトである blueprint css を使用して、単純なサイト レイアウトを構築しています。ただし、メイン コンテンツ セクションで Paypal フォーム ([今すぐ購入] ボタン) を使用できるようにする必要があり、サイトの他の領域でユーザー コントロールを使用できるようにする必要があります。実際、サイトのメイン セクションの上部にサイトマップ パス コントロールを配置したいと考えています。非常に基本的なものです。どうすればそれを達成できますか?私の問題は、Paypal ボタンをフォームに配置できず、4 番目の div を所定の位置に移動する方法がわからないことです。div とフォームがどのように重なり合っているのかさえわかりません。

助けてもらえますか?

問題のあるページはhttp://clubofpep.org/sandbox/sandbox_Alumni.aspxです。

4

2 に答える 2

8

一般に信じられていることとは反対に、ASP.Net Web フォーム ページには複数のフォームを含めることができます。できないことは、runat="server" を含む複数のフォームを持つこと、ASP.Net のメイン フォーム内に 2 番目のフォームをネストすること、またはメイン フォームの外で asp.net サーバー コントロールを使用することです。

したがって、別のペイパル フォームを asp.net Web フォーム ページの残りの部分と統合するには、ページ上のすべての asp.net Web コントロールの前または後に配置できることを確認してから、aspx を編集する必要があります。 Paypal フォームが完全に asp.net のフォームの外側にあることを確認するためのマークアップ。

もう 1 つのことは、簡単な Web 検索で、asp.net 用に作成された多数の Paypal コントロールが表示され、支払いを送信するために必要な asp.net フォームと連携することです。いつでもそれらのいずれかを試すことができます。

于 2011-09-14T16:17:36.433 に答える
1
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 :)
}
于 2011-09-22T16:49:09.987 に答える