使用查询字符串ASP.NET发布到同一页面

时间:2011-07-19 13:10:02

标签: c# asp.net postback query-string

我的问题是在页面上的任何按钮点击事件之前触发了Page_load。假设我想回发到同一页面并在查询字符串中传输一些数据,然后在page_Load上读取该数据并根据查询字符串中的值填充gridview(details.aspx => details.aspx?id = 2)

我该怎么做?谢谢!

3 个答案:

答案 0 :(得分:4)

private void Page_Load()
{
    if (IsPostBack)
    {
        // DO what you need to do from the postback here.
    }
}

更新:

如果您使用的是重定向到页面,则它不再是回发(Response.Redirect)。 在这种情况下,我看到的选项是在page_load中检查特定的查询字符串参数并对其进行操作。

  if(!String.IsNullOrEmpty(Convert.ToString(Request.QueryString["myQueryParam"])))
  {


  }

答案 1 :(得分:3)

Request.Form.Keys集合包含导致回发的按钮ID。 实际上,您可以使用它来检测单击的按钮 或者使用ASP超链接控件并将查询字符串URL放入 NavgateUrl 属性。 (除非您从详细信息页面获得更多回发数据)

如果您正在进行数据绑定,那么这样的事情就可以了

<asp:HyperLink ID=”linkTest1” runat=”server” NavigateUrl='<%# Eval(“ColumnName”, “Details.aspx?ID={0}”)' %>

或者您可以像后面的代码一样设置ID

linkTest.NavigateUrl = "Details.aspx?ID=" + IdVariable;

这比做response.redirect

更好

答案 2 :(得分:0)

他似乎只是简单地问他如何使用查询字符串重定向到同一页面。它有点晚了,但我很惊讶为什么没有人提到以下内容:

 void Page_Load( ... )
    {
        if (!Page.IsPostBack)
        {                
          Response.Redirect("Details.aspx?id=2");
        }
    }

当然,我刚刚根据您的解释编写了重定向网址。您可以通过编程方式设置该URL和查询字符串。

希望这有助于其他人。