2011-12-31 7 views
1

私のscenerioは私が私のドロップダウンリストから単一または複数のユーザーコントロールを選択する必要がありますする管理ページ(ヘッダ部)を行う必要があり、このようUserControlをページ上で動的に管理する方法....?

です....

に追加されますページを動的に....

どうすればいいですか?

現在、私の考えは

とするとき...いくつかのいずれかを選択し、ドロップダウンリストの一覧からユーザーコントロールを追加するとき、私はテキストエリアでのUserControlタグを追加して、DBに保存されます。このよう

ですウェブサイトのインデックスページが呼び出されると、ヘッダーセクションがデータベースからレンダリングされ、表示されます。

ただし、レンダリング中にindex.aspxのページの上部に配置する必要があるコントロールタグはどのように管理する必要がありますか?

は、私はそれを理解するのは困難であろういくつかの時点で知ってください私はあなたが私の質問

世話

答えて

1

に関連する任意のクエリを持っている場合は返信するために私の全力を尽くす私は正しくありあなたの質問を取得する場合タグや何かをdatabseに保存する必要はありません。コントロールの名前とパス(ユーザーコントロールは同じプロジェクトからのみ読み込むことができます)をロードするだけです。 ユーザーコントロールを動的にロードするコードサンプルを次に示します。重要な部分をbehing

<asp:DropDownList ID="userControlSelection" runat="server" AutoPostBack="true" 
    onselectedindexchanged="userControlSelection_SelectedIndexChanged"> 
     <asp:ListItem Value="1">User Control One</asp:ListItem> 
     <asp:ListItem Value="2">User Control Two</asp:ListItem> 
</asp:DropDownList> 
<asp:Panel ID="controlHolder" runat="server" ></asp:Panel> 

とコードで "this.LoadControl(" 〜/ WebUserControl2.ascx ")です。"詳細情報およびロードユーザーのために、この記事を見てくださいすることはDynamically creating User Controls

protected void userControlSelection_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     Control c = null; 
     if (userControlSelection.SelectedValue == "1") 
     { 
      c = this.LoadControl("~/WebUserControl1.ascx"); 
     } 
     else if (userControlSelection.SelectedValue == "2") 
     { 
      c = this.LoadControl("~/WebUserControl2.ascx");     
     } 

     if (c != null) 
     { 
      controlHolder.Controls.Clear(); 
      controlHolder.Controls.Add(c); 
     } 
     else 
     { 
      //Throw some error 
     } 

    } 

この情報がお役に立てば幸いです、それがうまく働いた

+0

感謝を制御しますが、私はパネル に沿って来て、余分なdivタグをたくないので、私はちょうどプレースホルダパネルを変更しますしかし、それが私を助けてくれた – NewbieFreak

関連する問題