2009-08-28 67 views
3

我正在一個asp.net web應用程序,其中我有我的項目預定義的面板與 CSS。現在我想在運行時多次創建具有相同設計和CSS的另一個面板。我有一個按鈕控件,當我點擊那個按鈕時,它會添加另一個面板。我如何添加新的面板在運行時在asp.net

請幫我按照相同的標準添加另一個面板。

+0

我SOOOO要回答這個問題..但沒有時間您要添加的ASP :( – madcolor 2009-08-28 20:58:44

+0

做:面板 – 2009-08-29 07:02:15

+0

是的,我想asp.net面板 – 2009-08-29 13:37:17

回答

4

如果這是你打算重用的東西,我建議你利用這個用戶控件。你可以簡單地在頁面上添加一個新的控件實例。

有幾件事情值得探討:

  1. http://aspnet.4guysfromrolla.com/articles/081402-1.aspx
  2. http://aspalliance.com/565
  3. http://msdn.microsoft.com/en-us/library/c0az2h86.aspx

如果你想用回發到頁面做到這一點,添加到您的活動...

//MyControl = Custom User Control 
var myControl = (MyControl) Page.LoadControl("MyControl.ascx"); 
this.ControlContainer.Controls.Add(myControl); 
+1

想知道這是downvoted也許戰術 – 2009-08-28 22:02:33

+0

@Joel? :我在這麼想,有點令人失望,但已經期待它了,至少亞歷克斯給了我一半的信念:)我的想法:) – RSolberg 2009-08-28 22:07:39

+0

謝謝你的建議。我跟着這個鏈接http://aspalliance.com/565,但是當我在沒有母版頁和CSS設計的簡單頁面中使用它時,它工作正常,但是當我嘗試使用擁有Master Page的頁面時,它沒有顯示任何東西。 這是bcoz設計還是由於其他原因。 – 2009-08-28 23:16:54

-1

難道你不能只在按鈕的「On_Click」事件後面的代碼中創建一個新的面板?這將是我的建議。您可能需要有一個佔位符將面板添加到頁面上顯示的內容中。

+0

這裏有很多問題 - 下次回傳後會發生什麼?此外,它不會重複使用現有面板的任何代碼。 – 2009-08-28 21:10:49

+0

根據設置的方式,可以使用AJAX進行回調以解決回發問題。還有其他問題是肯定的,但是當這些問題被發現時,可以修改答案來解決這些問題,因爲我認爲這些要求在這裏沒有經過深思熟慮。問題是關於在運行時加入面板。其他一切都是猜測。 – 2009-08-28 21:22:07

1

像RSolberg說,你可以寫一個用戶控件,並將其添加多次:

<my:UserControl id="MyControl1" runat="server" /> 
<my:UserControl id="MyControl2" runat="server" /> 
<my:UserControl id="MyControl3" runat="server" /> 

當然,只要你喜歡,因此對重複功能的用戶控件可以是簡單或複雜的頁。

但是,根據您的確切需要,您可能需要考慮類似ASP.NET Repeater,ListView或DataGrid控件。通過類似Repeater的東西,您可以將數據綁定到它,並將數據顯示在列表/網格中,這些數據具有共同的外觀和感覺。您也可以爲您的Repeater提供標題,項目和頁腳部分的HTML/CSS模板,以使其看起來一致且專業。

<asp:Repeater id="MyRepeater" runat="server"> 
    <HeaderTemplate> 
    <h1>Products</h1> 
    </HeaderTemplate> 
    <ItemTemplate> 
    <p> 
     Product name: <%# Eval("ProductName") %> 
    </p> 
    </ItemTemplate> 
</asp:Repeater> 

,並在您的代碼只是這樣做:

MyRepeater.DataSource = products; 
MyRepeater.DataBind(); 

有這樣做,你要問在ASP.NET什麼的許多方面 - 成爲一個更具體一點,我們就可以給你更多的具體幫助。

相關問題