2009-06-10 30 views
1

私はASP.NETの動的データ機能を使用して、ちょっと変わったことをしています。つまり、主オブジェクトの子としてフィールドの動的リストを作成します。DynamicControlの値を取得するにはどうすればよいですか?

基本的に私はTicket.Fieldsを持っています。メインページにはTicketのすべてのフィールドがリストされ、Fieldsプロパティには、より多くのデータを収集するためのコントロールのリストを生成するDynamicControlがあります。

このリストはダイナミックデータを使ってコントロールを生成するので、各フィールドは定義されたFieldTemplatesのいずれかになる可能性があります。実際のデータコントロールが何であるかは必ずしもわかりません値を取得する。

DynamicControlの値はどのようにして取得できますか?

値を取得する手段を提供するFieldTemplateの新しいサブクラスを作成する必要がありますか?

答えて

0

良い夜の睡眠は素晴らしいものです。

まあ、それだけ、それはすでにあなたのためのデータ・コントロールを公開して実現するFieldTemplateを拡張しようと...

foreach (ListViewDataItem i in lvFields.Items) 
    {   
     var val = i.FindDynamicControlRecursive("ValueText") as DynamicControl; 
     var ft = val.FindFieldTemplate("ValueText") as FieldTemplateUserControl; 

     ParseControl(ft.DataControl) 
    } 

ParseControlがここまで作ったが、私は実際にその周りに敷設クラスが処理することができていています私のためのその部分...将来の読者が少なくともここでアイデアを得ることを願っています。

重要なビットは、FieldTemplateUserControlにFindFieldTemplateの結果をキャストすることです。何らかの理由で、FieldTemplateUserControlsを返すことしかできないように思えますが、Controlを返します。私はあなたがフィールドジェネレータクラスを変更することによってどのフィールドテンプレートをオーバーライドすることができると思う...しかし、まだ。

関連する問題