2012-02-29 21 views
0

私のWebページには、ItemTemplateによって読み込まれるDataListコントロールがあります。各行にはチェックボックスがあり、ボタンをクリックすると実際にはsqlというクエリ文字列として生成されています。 ユーザーの入力に応じてリピーターを生成します。

DBからのクエリによって返される各結果

はこのようなものとして、別のデータリストに表示される10行を持っています

<Header> 

Item1: Result1 
Item2: Result2 
Item3: Result3 
... 
Item10: Result10 

問題は、私はなりますどのように多くのチェックボックスを知らないということですユーザーによって選択され、返される結果の数に応じて不明になります。 ユーザーが最初DataListコントロールからの2つのチェックボックスを選択したのであれば、結果のDataListは、2つの列を持っている必要があります。

<Header1>     <Header2> 

Item1: Result1 | Item 1: ResultCol2 
Item2: Result2 | Item 2: ResultCol2 
Item3: Result3 | Item 3:ResultCol2 
... 
Item10: Result10 | Item 10: ResultCol2 

私はこのための解決策を考えてみました。ユーザーが2つのチェックボックスを選択しましょう:今すぐ

foreach checkbox selected by the user 
    Make a new repeater. Add a new header. 
    Fetch the data from the database (Each result contains 10 columns) and bind to the repeater. 
    Add the repeater to a container on the web page. 

を、私は私が考えることができませんよ、Windowsフォーム、実行時に生成コントロールのように加えてTableLayout.Add(childElements)

のようなものによって行うことができることを覚えておいてくださいしかし、 Webフォームに似たようなものがあります。これは実際に正しいアプローチですか?このようなDataControlのダイナミックな構築は、この場合どのように達成できますか?

答えて

0

カウントを取得したい場合。私はそのためのラムダ式を書くだろう:

var selectedChkboxCount = DataList1.Items.Cast<DataListItem>(). 
          Where(s => ((CheckBox)s.FindControl("checkboxName")).Checked).Count(); 
+0

私はすでにchkBoxesを繰り返してカウントしている。この後のステップは、上記のようにこの新しいDataListを生成するためにほとんど曇らない – user1240679

関連する問題