2010-09-21 31 views
3

我是編程新手但嘗試學習。我使用C#運行Visual Studio 2010和一個asp.net webform項目。我正嘗試在其中一個頁面上實現paypals購買按鈕,並且生成的代碼也位於表單標籤中。無論它是哪個按鈕,頁面上的第一個按鈕都不會工作,並且下面有一條穩固的藍色線條。所有其他按鈕都正常工作。即使我刪除它,下一個按鈕成爲頁面上的第一個,然後它也無法正常工作....我正在學習,因爲所有的頁面都是窗體,生成的代碼也是一個窗體,我不能有一個窗體裏面表單。它是否正確? 有沒有什麼辦法解決這個問題......我真的知道的是一個lil HTML和一個lil CSS,我正在學習JavaScript,C#,XML,CSS,ASP.NET以及Visual Studio本身。任何幫助將不勝感激。如果有人想看看我在談論什麼去www.curbappealfordummies.net/Packages.aspx這是我工作的網站和網站管理員...謝謝你們的幫助。ASP.NET 4表單內的網頁表單

+0

太大的問題的答案,但你的「我不能有一個表單內的表單」聲明一般是正確的。有圍繞此的黑客,但沒有一個是可取的(特別是因爲你開始)。 – RPM1984 2010-09-21 06:07:53

回答

1

這是一個廣泛的問題,但一個可能的答案是生成第二個表單,其中包含所需的PayPal代碼。

這是一個簡化的例子;通常有必要引入這一點的邏輯。例如,如果按鈕需要包含在ASP.Net默認表單中,則需要服務器和/或客戶端代碼將它們連接到第二個表單,並確保它包含正確的隱藏值。

在你的web窗體

<form id="form1" runat="server"> 
<!-- Contents of your server form -->  
</form> 
<%=base.GetMarkupOutsideDefaultForm() %> 

在你的代碼隱藏

public string GetMarkupOutsideDefaultForm() 
     { 
      // 
      // Return the markup needed for a PayPal form, 
      // including javascript needed to automatically submit it. 
      // AppSettings can be any configuration object that contains 
      // the needed URL (or you can hardcode it) 
      StringBuilder sb = new StringBuilder(); 
      sb.Append("<form action=\"" + AppSettings.PayPalUrl + "\" method=\"post\" id=\"frmPayPal\" target=\"_blank\">"); 

      // add hidden PayPal fields 

      sb.Append("</form>"); 

      sb.Append("<script type=\"text/javascript\">document.forms[\"frmPayPal\"].submit();</script>"); 

      return sb.ToString(); 
     } 

如果邏輯是複雜的,第二個代碼塊應該被包含在一個輔助類。

希望這會讓某人走上正確的道路。

1

也許你需要開始一個教程,旨在幫助你獲得足夠的基礎知識,以便你能夠更好地理解你真正想做的事情......查看http://www.asp.net/general/videos/build-your-first-asp-net-application-with-asp-net-web-forms和那裏也有很多資源。如果你有學習的動力並不難,這聽起來就像你。

+0

我正在閱讀大量的教程,電子書和視頻在這一點上,這是我如何得到這麼遠,在三個星期內不知道什麼......謝謝你,我會檢查出這個鏈接也... ... – 2010-09-21 06:11:14

0

我知道你的意思。試着增加一個額外的

<form action='https://www.paypal.com/cgi-bin/webscr' method='post' target='paypal'></form>

在頂部。

例子:

<form id="form1" runat="server"> 
    <div> 
    <form action='https://www.paypal.com/cgi-bin/webscr' method='post' target='paypal'> 
    </form> 
    </div> 
    <div> 
    <form action='https://www.paypal.com/cgi-bin/webscr' method='post' target='paypal'> 
     <input type='hidden' name='add' value='1'> 
     <input type='hidden' name='cmd' value='_cart'> 
     <input type='hidden' name='business' value='<%# DataBinder.Eval(Container.DataItem, "business_email") %>'> 
     <input type='hidden' name='no_shipping' value='0'> 
     <input type='button' name='submit' value='Add To Cart' title='Add to Cart Button'> 
    </form> 
    </div> 
</form> 

簡單,但很有效。

或者,如果你不喜歡這個主意,嘗試這個帖子:

+0

嘿謝謝我會嘗試並查看帖子大聲笑... – 2010-09-21 06:39:02

+0

試過,只適用於新鮮的頁面加載,然後它只刷新頁面 – 2010-09-21 08:21:54