2012-01-02 8 views
0

列挙子とCurrentオブジェクトを取得できますが、オブジェクトが何であるかわからないので、型を知らずにコレクションを反復する方法そこに価値がある。サンプルコードは大丈夫ですCreateChildControlsのGridViewでIEnumerableのdataSourceを繰り返すにはどうすればいいですか?

protected override int CreateChildControls(System.Collections.IEnumerable dataSource, bool dataBinding) 
    { 
     // Call base method and get number of rows 
     int numRows = base.CreateChildControls(dataSource, dataBinding); 

     IEnumerator enumerator = dataSource.GetEnumerator(); 
     while(enumerator.MoveNext() 
     { 
      object obj = enumerator.Currnet as object; 
     } 

     return numRows; 
    } 
} 
+0

どのような結果が表示されますか?あなたは何を期待していますか? – RickNZ

+0

これは私の他の投稿に関連しているhttp://stackoverflow.com/questions/8698008/writing-out-the-data-for-each-row-in-custom-gridview-control-and-adding-insert-r i何も結果が得られないからGridViewRowに値を入れる方法がわからないから – ONYX

+0

@RickNZ新しいzelandからウェルニンゲンへ – ONYX

答えて

1

私があなたの他の質問で言ったように、あなたの質問に対する短い答えは「反映」です。これが、標準のデータバインディングツールがその魔法を働かせる方法です。

+0

私に例を与えるページへのリンクやリンクを教えてもらえますか? – ONYX

+0

これをチェックしてくださいhttp://typedescriptor.net /System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable,Boolean) – ONYX

+0

元のコードでは、 "仮の"( "as")キャストを使用してさまざまな型をチェックしています。これは最初は反射に代わるものですが、時には十分ではありません。 – RickNZ

関連する問題