2009-07-08 28 views
1

現在、私は2ページを持っています:ASP.Netクロスページ投稿

最初のページには入力フォームが含まれ、2ページ目にはExcelドキュメントが生成されます。入力フォームのボタンはこの第2ページに投稿されます。

私がしたいのは、2番目のページに投稿する2番目のボタンを追加することです。しかし、私はこの新しいボタンから作成されたリクエストが異なって行動する必要があります。

2番目のページからどのボタンを押してリクエストを送信したかわかりますか?

私が求めている主な理由は、可能であれば、第1ページの情報を解析する際に第2ページのロジックを再利用したいということです。私はむしろそれを新しいページにコピーし、それに新しいボタンを投稿する必要はありません。

ありがとうございます!

答えて

3

あなたがから、フォーム上の隠しテキストボックスを持っている可能性のClientID各ボタンが第2のページにポストする前に値を設定する最初のページ。 2番目のページでは、その隠しテキストボックスの値を評価することができます。

編集:あなたの投稿を再読した後、私はあなたが達成しようとしていたことを誤解したと思います。

Page1.aspx:

<asp:Button ID="Button1" Text="Button 1" PostBackUrl="~/Page2.aspx?button=1" runat="server" /> 
<asp:Button ID="Button2" Text="Button 2" PostBackUrl="~/Page2.aspx?button=2" runat="server" /> 

Page2.aspx.cs:

string sButton = "0"; 
if (Request.QueryString["button"] != null) 
    sButton = Request.QueryString["button"]; 

if (sButton == "1") 
    // Do button 1 stuff 
else if (sButton == "2") 
    // Do button 2 stuff 
あなたは、単に送信するページ上のどのボタンがクリックされたかを決定しようとしている場合は、クエリ文字列で行うことができます
+0

ニース。 (15文字) – John

0

これは2ページ目にちょうど純粋なHTMLとフォームのaction属性ポイントであれば...

あなたは、単に同じ名前のATTRIBと二つの異なる値はattribsを持つ2つの異なる送信ボタンを持っている必要があります。いずれかのボタンをクリックすると、フォームフィールドが2番目のページに送信されます。投稿された要素の値を送信ボタンの名前でチェックすると、クリックされた要素がわかります。

ポストバックの各ボタンのサーバー側のクリックイベントを処理して、クリックされたイベントを特定することができます(タイトルとタグに示されているように)。しかし、ASP.NETフォームを2番目のページに送信することは必ずしも単純ではありません。 URL書き換えのSee the Scott Guthrie post、具体的には、フォームタグのアクション属性をオーバーライドする最後のセクションです。

+0

現時点では、最初のページには実際のロジックがないように設定されています。ボタンは2ページ目に「PostBackUrl」属性を設定しています。2ページ目は「Page.PreviousPage」を使用して投稿された値を取得します。 – John

0

デバッグを行った後、ボタンがフォームの値に含まれているかどうかを判断するのが最善の方法です。

I.e.誰もがこれを行うには良い方法を知っている場合は

if(Request.Form["Button1ClientID"] != null) 
    //button 1 stuff 
else if(Request.Form["Button2ClientID"] != null) 
    //button 2 stuff 

、私は

編集を教えてください:一意IDは、ない

0

実際には、Buttonコントロールを使用している場合にのみ、Request.Formのボタンのチェックが機能します。私はRequest.Formに何も配置していないLinkBut​​tonを使用しているプロジェクトでこれを必要としました。しかし、私は次のコードでどのボタンが押されたかを決定することができました:

if (Request.Form["__EVENTTARGET"] == button1.UniqueID) { 
    // do button 1 stuff 
} else if (Request.Form["__EVENTTARGET"] == button2.UniqueID) { 
    // do button 2 stuff 
} 

をとにかく、私はこれらのフォーラムはとても参考、私は一度のための答えを投稿しなければならないと思いました。

関連する問題