如何重定向到另一个页面并在该页面上触发事件?

时间:2011-07-27 10:21:16

标签: c# asp.net

我想重定向到同一项目中的另一个页面并自动触发点击事件。我可以重定向到另一个页面,但需要有关如何自动触发事件的帮助。我重定向的类称为Testing and the class to which i redirect is TabTest . My code in the测试`类是:

  protected void LinkButton2_Click(object sender, EventArgs e)
  {
      Response.Redirect("TabTest.aspx");
  }

4 个答案:

答案 0 :(得分:3)

您无法在重定向时直接触发事件。

解决方案是将查询字符串参数添加到重定向:

Response.Redirect("TabTest.aspx?ShowChart=true");

在TabTest.aspx的Page_Load事件中,添加以下代码:

if(Request.QueryString["ShowChart"] != null 
  && Request.QueryString["ShowChart"] == "true"))
{
    // Call the click event handler for the button that shows the chart. Passing
    // `null, null` assumes that you don't use the sender or eventargs parameters
    // in the event handler.
    ShowChart_Click(null, null);
}

答案 1 :(得分:1)

我建议不要使用QueryString(用户可以手动输入),如下所示。我担心我的c#知识不存在,但这是一个VB.NET等价物:

FirstPage.aspx

Session("mySession") = "myValue"
Response.Redirect("TabTest.aspx?FireSession=1")

TabTest.aspx

If Request.QueryString("FireSession") = 1 AndAlso Session("mySession") IsNot Nothing AndAlso Session("mySession") = "myValue" Then
  RunMethod()
End If

答案 2 :(得分:0)

你能否在page_load中触发事件?你可以把它贴在回发的支票上,这样它不会多次开火吗?

答案 3 :(得分:0)

你需要将Chart显示方法封装到一个单独的方法中,比如DisplayChart(),并根据一些QueryString参数调用这些方法,或者只是在TabTest.aspx的page_load中调用它

避免直接调用处理程序,事件处理程序只应在触发事件时调用,最好在处理程序中调用此方法。