ASP.NETでデータベースからフォームを動的に生成したいのですが、どのような方法が最適ですか?私が使用できる組み込みの機能はありますか?ASP.NETでの動的フォームの生成
私は、パネルとその名前を表すデータベーステーブルを持っています。次に、パネルごとに異なるフィールドとそのタイプ(コンボ、テキストボックスなど)が含まれています。
助けてください、ありがとう。
注:私はDynamic Dataを見てくださいフォーム生成
ASP.NETでデータベースからフォームを動的に生成したいのですが、どのような方法が最適ですか?私が使用できる組み込みの機能はありますか?ASP.NETでの動的フォームの生成
私は、パネルとその名前を表すデータベーステーブルを持っています。次に、パネルごとに異なるフィールドとそのタイプ(コンボ、テキストボックスなど)が含まれています。
助けてください、ありがとう。
注:私はDynamic Dataを見てくださいフォーム生成
ためTelerik Ajaxコントロールを使用する必要があります。
私は最近それについて知っていて、それはすでにlotの時間を節約しました。
更新:
謝罪 - 質問を再読した、私は、これはあなたが後に何であったかではないと思います。
データベースのレコードに基づいてフォームを動的に生成する場合は、独自のエンジンを作成する必要があります。
しかし提案のカップル:
更新:あなたは、実行時にアセンブリの詳細を知るとき、反射簡単に言えば
詳細は、反射があります。この場合は、リフレクションを使用して、データベース内の情報に基づいてコントロールをロードすることをお勧めします。あなたは次のようにデータベース内のレコードがあった場合
ので:
FieldName DataType DisplayControl DisplayProperty
----------------------------------------------------------------------------------
FirstName System.String System.Web.UI.WebControls.TextBox Text
をあなたは(それがテストされていないということに注意してください)ページ上のコントロールを生成するには、次のようないくつかのコードを使用することができます。
// after getting the "PageItem" database records into a "pageItems" array
foreach (PageItem p in pageItems)
{
// get the type and properties
Type controlType = System.Type.GetType(p.DisplayControl)
PropertyInfo[] controlPropertiesArray = controlType.GetProperties();
// create the object
object control = Activator.CreateInstance(controlType);
// look for matching property
foreach (PropertyInfo controlProperty in controlPropertiesArray)
{
if (controlPropertiesArray.Name == p.DisplayProperty)
{
// set the Control's property
controlProperty.SetValue(control, "data for this item", null);
}
}
// then generate the control on the page using LoadControl (sorry, lacking time to look that up)
これを行う方法を概説する実際のページがあります。hereあなたが何をしているかはかなりわかります。
私はリフレクションに精通していません。あなたが意味するものを広げることができますか?好ましくは簡単な例で? – Joshscorp
確かに、私は私の答えを更新します – Damovisa
ありがとう、それは私にいくつかの頭をスタートさせる、あなたはそのActivator.CreateInstanceでTelerikコントロールを使用することができると思いますか? – Joshscorp