我的问题是在页面上的任何按钮点击事件之前触发了Page_load。假设我想回发到同一页面并在查询字符串中传输一些数据,然后在page_Load上读取该数据并根据查询字符串中的值填充gridview(details.aspx => details.aspx?id = 2)
我该怎么做?谢谢!
答案 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和查询字符串。
希望这有助于其他人。