2011-07-19 24 views
2

私の問題は、Page_loadがページ上のボタンクリックイベントの前に発生するということです。同じページにポストバックしてクエリーストリングのデータを転送したい場合、クエリー・ストリング(details.aspx => details.aspx?id = 2)の値に応じて、page_Loadでそのデータを読み込み、gridviewにデータを取り込みたいとします。クエリ文字列ASP.NETと同じページに投稿

どうすればいいですか?ありがとうございました!

+0

私はあなたのコメントに従って答えを更新しました。 –

答えて

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

UPDATE:

ご使用は、それがもはやポストバック(Response.Redirectを)あるページにリダイレクトされている場合。 その場合、私が見るオプションはpage_loadにあり、特定のクエリ文字列のパラメータをチェックしてそれに作用します。

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


    } 
+0

これは私の質問に答えません。自分で試してみてください。あなたは "response.write(request.querystring [" id "])}}と何が起こるかを知っていれば、あなたは" response.redirect( "default.aspx?id =" + txt.text)これは私の質問に対する答えではありません。あなたが確信が持てない場合、あなたは答えるべきではありません。 – Johan

+3

あなたの質問にはどこにも表示されません。あなたはresponse.redirectを使用しています。 – ghimireniraj

+1

@Johan:リダイレクトは転記と同じです。 – xan

3

Request.Form.Keysには、ポストバックの原因となったボタンIDが含まれています。 これをクリックすると、クリックされたボタンを検出できます。
また、ASPハイパーリンクコントロールを使用して、クエリ文字列URLをNavgateUrlプロパティに配置します。あなたはデータバインディングを行っている場合

(あなたが詳細ページから、必要な多くのポストバックデータを持っていない限り)、このようなものは

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

を働くだろうそれとも、THS

のように背後にあるコードからIDを設定することができます
linkTest.NavigateUrl = "Details.aspx?ID=" + IdVariable; 

これは、彼がただ単に彼がQUと同じページにリダイレクトする方法を尋ねたそうですResponse.Redirectを

0

を行うよりも良いだろうエリーストリング。そのちょっと遅れて誰が次のように言及していない理由を私は驚いている:

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

を私はちょうどあなたの説明に基づいてURLをリダイレクト記述しています。そのURLとクエリ文字列をプログラムで設定することができます。

他人に役立つことを願っています。

関連する問題