2009-04-10 24 views
3

私は私のasp.netのページについては、以下の要件ました:ASP.NETでテキストボックスを動的に追加するにはどうすればよいですか?

  • は彼がクリックハイパーリンク

    1. ユーザーがリンクをクリックしてページAに動的にテキストボックスを追加することができますが、「新しいカテゴリを追加」 submitボタンをクリックしてページBにリダイレクトされます。

    2. このページからページAのリンクをクリックすると、追加したテキストボックスが保持されます。

    誰かがこのコードを手伝ってもらえますか?

    ありがとうございました!

  • 答えて

    3

    ButtonClickメソッドでは、

    TextBox tb = new TextBox(); 
    
    Parent.Controls.Add(tb); 
    

    親は、パネルなどのテキストボックスを追加するコントロールです。

    this resourceもご覧ください。

    希望します。

    +0

    であることは、これがなければならないことに注意すべきであるTE Initイベントの前または最中に行われるか、ViewStateはコントロールへの変更を追跡しません。 – FlySwat

    3

    ユーザーコントロールを動的に追加するのは簡単です。しかし、この場合、私はあなたがそれを行う必要はないと思うのではなく、その中にテキストボックスを持つリピーターを作成し、ユーザーがカテゴリの追加をクリックすると、リピーターデータソースに1つのアイテムを追加することに注意する必要があります。

    このようにして、コントロールの作成と状態の永続化の両方を同時に処理できます。

    0

    テキストボックスを動的に追加することは非常に簡単ですが、Textboxを作成し、それが表示される必要があるコントロールのコレクションに追加するだけです。このユーザーがこの追加のテキストボックスを取得する情報を格納する必要があります。これが長期的なものであると仮定すると、この情報をバックエンドストアに保存する必要があります。ページを作成するときは、最初に店舗情報を読んで、作成するテキストボックスを確認する必要があります。

    私は次のようにすることをお勧めします。 OnloadイベントでこれまでにOnloadイベントを実行していない場合は、DBから動的情報をロードします。必要なコントロールをページに追加し、この情報をviewstateに格納します。後続のポストバックでは、追加のコントロールを追加するために、viewstateから情報を読み取ります。これにより、各ポストバックのデータベースから絶えず読み込む必要がなくなります。

    0

    動的ユーザーコントロールを扱うことは、お尻の痛みになる可能性があります。

    私はダイナミックなユーザーコントロールを作成するたびに、ASP.netがポストバック時にそれを再割り当てできるようにIDを設定する必要があります。ポストバック後にコントロールの値を保持できるようにするには、 Page_Initイベントのユーザーコントロール。

    これが役に立ちます。

    1

    は動的にテキストボックスを作成:

    iは ..あなたは、テキストボックスに「1」、[追加]ボタンをクリックし、出力はディスプレイ1テキストボックス以下 のようになります入力するときは、このenter image description here

    のようなページがあるとしbtnadd_clickに... ..私は、ダイナミックテキストボックスを表示するための1つのテキストボックスやプレースホルダを持って、次のように追加]ボタンを ダブルクリックし enter image description here

    を設計している、あなたはWRIに持っています次のコード

    無効btnadd_Click(オブジェクト送信者、EventArgsの電子) {

    int i; 
         for (i = 0; i < Convert.ToInt32(txtno.Text); i++) 
    
        { 
    
         TextBox txtbox = new TextBox(); 
         phtxt.Controls.Add(txtbox); 
    
         phtxt.Controls.Add(new LiteralControl("<br>")); 
    
        } 
    
        } 
    

    デバッグ、それを保護し...と出力は、 enter image description here

    関連する問題