2017-03-09 5 views
0

listboxを複数作成し、動的に作成したときにバインドする必要があります。ループが必要dynamicaly created listbox C#

for(int i=0;i<requirement;i++) 
{ 
    Listbox dynamiclistbox = new listbox(); 
    //then i bind it with a list<> 
    //then i add listbox to a panel 
    panel.Controls.Add(dynamiclistbox); 
} 

私の問題は、誰かがいない作成するために私を助けることができる私は、送信ボタンをクリックすると、ダイナミックコントロールはpostback 上のような動的コントロール緩い状態に消えるということであるようlistboxのノーを作成するためであると私はlistboxを作成しました。 listboxを動的にバインドし、同じボタンクリックでバインドすることもできます。そしてあなたがPage_Loadイベント内のコードを配置する必要がありますlistbox

+0

ポストバック号に結合するための書き込みコード:http://stackoverflow.com/questions/34544500/get-text-value-from-textbox-after-value-text-changed -server-side –

+0

すべてのポストバックでリストボックスを(再)作成する必要があります。 'require'をどこかに格納しなければならず、PostBackがあるときに' for-loop'をもう一度実行してください。 – VDWWD

答えて

0

に選択した項目を知るために、listbox

postbackにすなわちを取得します。それがすでに存在する場合はその場合は、あなたはおそらくそれがないときに、それが唯一のコントロールを追加しているので、あなたは、 if外にあなたのコードを配置する必要があります、

if (!Page.IsPostBack) { 
    //Your code 
} 

のようなものの内側にそれを持っていますポストバックがあり、ポストバックのときにそれらを追加する必要があります。

編集:

現在、コントロールはボタンをクリックすると作成されます。入力を受け取り、コントロールを生成し、panelに追加する別個の機能を持つことをお勧めします。クリックイベントからこの関数を呼び出します。これが正しい場合は、asp:HiddenFieldを作成し、Valueをクリックハンドラで必要な入力に設定します。 Page_LoadValueHiddenField)の機能を呼び出してください。

+0

返信用のLajosありがとうございますが、ボタンをクリックするとリストボックスが作成されます。リストボックスの番号が正常に作成され、リストにもバインドされています。しかし、問題は、リストボックス(動的に作成されたリストボックス)上の選択したテキストが必要ですが、ポストバックリストボックスが消えることです。 – Vishal

+0

@Vishalは私の答えの編集をチェックします。 –

+1

お返事ありがとうございます。あなたの答えは、ダイナミックコントロールの概念を明確にしてくれます。私の間違いは、(ispostback)で動的リストを作成していて、ispostbackでコントロールリストボックスを見つけていたということだけでした。それが私のセーブボタンイベントであることを賞賛します。 – Vishal

0

!IsPostBackセクション

for(int i=0;i<requirement;i++) 
{ 
    Listbox dynamiclistbox = new listbox(); 
      dynamiclistbox.CssClass = ""; 
      dynamiclistbox.ID = "" 
      dynamiclistbox.EnableViewState = true; 

    if (!IsPostBack){} 
+0

答えがありがとうが、私はボタンをクリックして動的リストボックスを作成する必要があるので、私は!ispostbackで作成することはできませんが、今私は上記の私の答えを得る。あなたの答えにも感謝します – Vishal

関連する問題