2009-05-12 8 views
0

CreateUserWizardStepのCreatedUserイベントでControlCollectionを反復しようとしています。私は週にユーザの空き状況を収集するために使用しているチェックボックスでいっぱいのテーブルを含むContentTemplateを持っています。簡潔にするために私はコードをpastebinに貼り付けます。CreateUserWizardStepからControlCollectionを繰り返します。

Hereは、.aspxページへのリンクです。 HereはCreatedUserイベントです。

このループ:

foreach (Control c in CreateUserWizardStep1.ContentTemplateContainer.Controls) 
    { 
     if (c.GetType() == typeof(CheckBox)) 
     { 
     } 
    } 

で動作するように簡単なものも...私にWizardDefaultInnerTableを与える代わりに。

2番目のテーブルのチェックボックスに移動するにはどうすればよいですか?私がしたいことは、チェックされたプロパティを見つけ、それを使ってデータベースに入れることができる文字列を構築することです。どんな指導も高く評価されます。

ありがとうございます!

答えて

2

コントロールを再帰的に実行する必要があります。しかし、あなたが設定したIDによってそれらを参照することもできます。

再帰的な解決策のようなものになります。

IEnumerable<T> FindControls<T>(Control parent) where T : Control { 
    T t = parent as T; 
    if (t != null) yield return t; 

    foreach (Control c in parent.Controls) { 
     foreach (var c2 in FindControls<T>(c)) yield return c2; 
    } 
} 
+0

マークを、私はあなたの関数を動作させることができませんでした。しかし、それは正しい道を私に導きます!コンテナコントロールを再帰的に反復するためのgoogle検索では、私[this](http://www.codeproject.com/KB/cs/Generic_Iterator.aspx)ページにアクセスできました。私は私のニーズに合わせて少し修正しました。 ありがとう! – ChristopherWright

関連する問題