2017-08-10 114 views
0

還有其他問題有類似的標題,但我找不到解決我的問題。將dropdownlist值傳遞給另一個頁面asp.net使用postbackurl

我在page1上有一個表單,帶有一個下拉列表和一個按鈕。在按鈕上我指定了一個postbackurl。我需要從第1頁的第2頁中檢索該dropdownlist的值。我省略了第1頁的代碼隱藏和第2頁的aspx,因爲它們不相關。你能幫我解決我的問題嗎?

ASPX頁面1個

<asp:Content ID="Content2" ContentPlaceHolderID="MainContentPlaceHolder1" runat="server"> 

    <asp:DropDownList ID="DDLCountryList" runat="server" CssClass="ddlstyle" AutoPostBack="true" onchange="if(this.selectedIndex == 0)return false;" OnSelectedIndexChanged="Country_SelectedIndexChanged"> 
     <asp:ListItem Text="Country" Value="Country" Selected="True" /> 
     <asp:ListItem Text="USA" Value="USA" /> 
     <asp:ListItem Text="Canada" Value="Canada" /> 
    </asp:DropDownList> 

    <asp:Button ID="Button1" runat="server" Text="Register" CssClass="pink-btn" PostBackUrl="/page2"/> 

</asp:Content> 

代碼背後第2頁

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace Testing 
{ 
    public partial class WebForm11 : System.Web.UI.Page 
    { 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      string DDLCountryList = Request.Form["DDLCountryList"]; 


     System.Diagnostics.Debug.WriteLine(DDLCountryList); 
     } 
    } 
} 
+0

使用Querystring –

+0

這不是一個非常有用的迴應。我不想使用查詢字符串。 – cjtampa

+0

這就是爲什麼我作爲評論。感謝您澄清您不想使用它。 –

回答

1

您使用母版頁。他們將控件的ID重命名爲MainContentPlaceHolder1_DDLCountryList。這也發生在控制的name。這將成爲像ctl00$MainContentPlaceHolder1$DDLCountryList

現在,當您捕獲一個Form Post時,您需要將name作爲關鍵字,而不是ID。因此,您正在使用的控件的ID甚至不存在,而您應該使用aspnet重命名的名稱。

因此,請在DropDownList的頁面上嘗試使用它以獲取正確的密鑰。

string DDLCountryList = Request.Form[DDLCountryList.UniqueID]; 

這是您需要捕獲另一頁上的表單發佈的關鍵值。

相關問題