4

c#/asp.net アプリに機能を実装する際に問題があります。

RadioButtonList と送信ボタンを含むフォームがあります。RadioButtonList はPage_Load()、データベースから取得したオブジェクトのリストから生成されます。リストにオブジェクトが 1 つしかない場合、フォームを自動的に送信したいと考えています。

Form オブジェクトや送信ボタンなどにアクセスできますが、解決策が見つからないようです (最終的には一種のform.Submit()) メソッドを探しています。

どうすればこれを行うことができるか考えている人はいますか?

前もって感謝します !

編集>>コードは次のとおりです。

.aspx : http://pastebin.com/0E6T7dqH

.aspx.cs : http://pastebin.com/54payZJP

EDIT2 >>>

最初にやりたかったことを行う方法がないように思われるので、response.redirect() でセッション変数を使用することになりました

ソース: http://dotnetslackers.com/Community/blogs/haissam/archive/2007/11/26/ways-to-pass-data-between-webforms.aspx

4

3 に答える 3

3

投稿はクライアント側で行われます。現在サーバー側で実行している Page_Load と同様に、ポストで実行したいコードを呼び出すだけです。

編集:実際に別のaspxに行くために

public void Page_Load(object sender, EventArgs e) {
    if(!IsPostback && OnlyOneItem) {
        Server.Transfer("TheOtherPage.aspx");
    }
}

Server.Transfer はリクエスト全体を維持するため、投稿データが利用可能になります。

http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.transfer.aspx

于 2012-04-04T12:20:44.303 に答える
2

このようなことを試してください

あなたのPage_Load

if(!IsPostBack)
{
      if(check for only one object)
      {
         //your submit code
      }
}
于 2012-04-04T12:22:39.880 に答える
1

私は実際に一度、似たようなことをしなければなりませんでした。これがあなたができる方法です。

Asp.Net ボタンには というプロパティがPostBackUrlあり、ボタンをクリックしたときにフォームが投稿される場所を制御します。

RegisterStartupScript関数を使用して、ページに JavaScript をレンダリングすることもできます。

これで、この 2 つのピースがあれば、目的を達成できます。

if(!IsPostBack)
{
    if(results == 1)
    {
        button.PostBackUrl = "next page's url"
        //Register script to click the button using RegisterStartupScript
    }
}

さて、これをお見せしましたが、最高のユーザー エクスペリエンスにはならない可能性があることを警告します。私がそれを行ったとき、それは他に解決策がない非常に特殊なケースのためのものでした. ページは実際にユーザーにポストバックされ、ボタンをクリックするための JavaScript が有効になる前に、ページが一瞬表示されます。さらに、ボタンの PostBackUrl を設定すると、ボタンをクリックすると、フォーム全体が指定されたページにポストされます。現在のページのコード ビハインドはまったく起動しないため、検証がある場合は実行されません。

選択肢が 1 つしかない場合でも、ユーザーがボタンをクリックしてフォームを送信できるようにすることには何の問題もありません。私の経験では、ユーザーは自分がシステムをコントロールしていると感じたいと思っています。彼らは、ページが彼らの入力なしでただ何かをするのを好まない.

また、次のページが必要とする情報をセッションまたはデータベース テーブルに入れ、Response.Redirect. これはかなり一般的な方法であり、ほとんどのシナリオで確実に機能します。

于 2012-04-04T15:13:54.547 に答える