2011-05-21 32 views
0
public void Submit1_Click(Object sender, EventArgs E) 
{ 
    string strheadlinesid1 = string.Empty; 

    if (!IsPostBack) 
    { 
     if (!string.IsNullOrEmpty(Convert.ToString(Request.QueryString["folder"].ToString()))) 
     { 
      strheadlinesid1 = Request.QueryString["folder"].ToString(); 

     } 
    } 

    string URL = "view4.aspx?value="+strheadlinesid1; 

    Response.Redirect(URL); 
    } 

這是我使用的功能,但是當我通過strheadlinesid1,「價值」,在URL變量越來越nothing.Why是它發生了。這種方法有什麼不妥。無法在ASP.NET傳遞價值的其他網頁(C#)

回答

3

點擊按鈕,頁面將在回髮狀態,你的條件將是錯誤的if (!IsPostBack),所以它不會進入到塊,因此值不會被分配到strheadlinesid1

此塊

if (!IsPostBack) 
{ 
    if (!string.IsNullOrEmpty(Convert.ToString(Request.QueryString["folder"].ToString()))) 
    { 
     strheadlinesid1 = Request.QueryString["folder"].ToString(); 

    } 
} 

應該

if (!string.IsNullOrEmpty(Convert.ToString(Request.QueryString["folder"].ToString()))) 
    { 
     strheadlinesid1 = Request.QueryString["folder"].ToString(); 

    } 
+0

是的,在回發查詢字符串不會改變,所以只要刪除'if(!IsPostBack)'條件。 – 2011-05-21 05:58:28

+0

非常感謝。 – Naresh 2011-05-21 06:00:11

+0

歡迎您:) – 2011-05-21 06:01:01

2

點擊一個按鈕是回發這麼strheadlinesid1不會像簽署並將是空的。

您需要刪除IsPostback的檢查,因爲按鈕點擊事件通常會作爲回發事件執行。

public void Submit1_Click(Object sender, EventArgs E) 
{ 
    string strheadlinesid1 = string.Empty; 

    if (!string.IsNullOrEmpty(Convert.ToString(Request.QueryString["folder"].ToString()))) 
    { 
     strheadlinesid1 = Request.QueryString["folder"].ToString(); 
    } 

    string URL = "view4.aspx?value="+strheadlinesid1; 

    Response.Redirect(URL); 
} 
1

由於按鈕點擊是一個回發,並且如果它是回發,讀取「文件夾」查詢字符串的代碼不會執行?

所以「價值」的價值永遠是空的。

取消!IsPostback的檢查,如果這是你想要的。