2011-05-21 17 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的检查,如果这是你想要的。