2013-03-21 52 views
0

我希望能夠在我的asp.net c#頁面上添加燈具到特定的比賽周。以編程方式將控件添加到ASP.NET按鈕上的C#頁面點擊

當用戶點擊添加按鈕時,它應該創建兩個下拉菜單,以便他們可以選擇主客場球隊。我希望能夠允許用戶添加儘可能多的燈具,因此我需要一種向頁面添加控件的動態方式。一旦添加了所有燈具,我希望它們全部保存到數據庫中。

滾動槽論壇,我發現下面的方法來得到控制,通過編程的方式補充說:

C#

 protected void AddTeamButton_Click(object sender, EventArgs e) 
    { 
     DropDownList homeTeamName = new DropDownList(); 
     homeTeamName.Items.Add("Arsenal"); 
     homeTeamName.Items.Add("Aston Villa"); 
     homeTeamName.ID = "homeTeam"; 
     PlaceHolder1.Controls.Add(homeTeamName); 

     DropDownList awayTeamName = new DropDownList(); 
     awayTeamName.Items.Add("Arsenal"); 
     awayTeamName.Items.Add("Aston Villa"); 
     awayTeamName.ID = "awayTeam"; 
     PlaceHolder1.Controls.Add(awayTeamName); 
    } 

ASPX:

<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> 

但是,這僅產生一組控件,第二次點擊添加,沒有任何反應。當我需要保存時,它也不會創建唯一ID。

任何想法如何我可以解決我遇到的這些問題?

+0

嘗試給每一對控件唯一的ID,否則他們只被添加一次並不意外。 – 2013-03-21 12:41:22

+0

我建議你使用一個ListView控件,並根據集合中的項目數重複一個模板。然後您可以通過單擊您的按鈕在集合中添加1個項目。 ListView控件負責處理唯一的ID等。只需從工具箱拖放一個ListView,添加一個ItemTemplate,添加一個DataSource,然後調用DataBind()。看看ListView的MSDN頁面http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.aspx – Bazzz 2013-03-21 12:42:21

+0

我該怎麼做? – JackofAll 2013-03-21 12:42:21

回答

0

asp.net中的動態控件並不是那麼容易。
您需要在每個帖子上創建它們(最好在Init),直到您在頁面上需要它們。
你還需要給他們唯一的ID。

如果您想要創建多個控件,我建議在您的Session中保留一個計數器並使用它來循環並在Init上生成所需的控件。

在您的AddTeamButton_Click上,您只會增加計數器並添加一組控件。

+0

謝謝!我想我可能不得不使用網格視圖,真的很遺憾!我真的不喜歡它們 – JackofAll 2013-03-21 12:49:12

+0

它比自己創建這些控件需要的記錄更好。 – nunespascal 2013-03-21 12:55:33

相關問題