2011-07-27 1 views
4

同じプロジェクト内の別のページにリダイレクトし、自動的にイベントを発生させたいです。別のページにリダイレクトすることはできますが、自動的にイベントを発生させる方法についてはヘルプが必要です。私はリダイレクトしていた場所からクラスがTesting and the class to which i redirect is TabTest . My code in the Testing`クラスと呼ばれている。他のページにリダイレクトしてそのページのイベントを発生させるにはどうすればいいですか?

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

私は作るためにあなたの質問を編集しましたそれははっきりしていますが、私は何か間違ったことをして、意味を変えたかもしれません。あなたは、このバージョンがあなたが望むことを言うことを確認していただけますか?それ以外の場合は、編集リンクを使用して更新します。 –

答えて

3

あなたが直接リダイレクトにイベントを発生することはできません。

ソリューションは、リダイレクトにクエリ文字列パラメータを追加することです:TabTest.aspxのPage_Load場合に

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

、次のコードを追加します。

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); 
} 
+0

tabtest.aspxページにリンクボタンがあり、クリックイベントのチャートを表示します。タブテストページにリダイレクトし、リンクボタンのイベントをクリックして、リダイレクトされたチャートを自動的に表示しますか? –

+0

@Syed Raza:あなたのコメントに基づいて明確にするようにコードを更新しました。 –

+0

私はそれをやろうとしますが、それをデバッグすると、タブテストページにリダイレクトされます。ロードイベントの前に条件があってもブレークポイントを使用しますが、別のページにリダイレクトし続けるのですか? –

0

を使用すると、火災ができませんでしたpage_loadのイベント?あなたはポストバックのチェックの中にそれを貼り付けることができるので、1回以上は発射されません。

0

あなたは、いくつかのQueryStringパラメータに基づいてDisplayChart()のように言うと、これらのメソッドを呼び出す別の方法にチャートの表示方法をカプセル化する必要があるか、単に直接ハンドラを呼び出すTabTest.aspx

避けのPage_Loadの中でそれを呼び出しますイベントハンドラは、イベントが発生した結果としてのみ呼び出されるべきであり、ハンドラ内でこのメソッドを呼び出す方が優れています。

1

QueryString(ユーザーが手動で入力できる)を使用するのではなく、次のようなSession変数を渡すことをお勧めします。私は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 
関連する問題