2012-03-22 45 views
1

大家好我一直在試圖把一些對象放在ASP.NET列表框中,但它不工作。無法讓我的列表框顯示對象

我有一個重寫的ToString方法,所以我不明白爲什麼這個語句不起作用。 下面是我使用的代碼:

for (int i = 0; i < fitnessClassList.Count(); i++) 
{ 
    lbDisplayItems.Items.Add(fClassList.getFClass(i)); 
} 

而我得到的錯誤:

Error 2 Argument 1: cannot convert from 
        'FitClassManage' to 
        'System.Web.UI.WebControls.ListItem'  

Error 1 The best overloaded method match for 
        'System.Web.UI.WebControls.ListItemCollection.Add(System.Web.UI.WebControls.ListItem)' 
        has some invalid arguments 

回答

2

的ASP.NET ListBox不喜歡的WinForms ListBox。你不能添加任何對象給他。其項目集合(ListItemCollection)限於ListItem(因此您無法添加依賴ToString()進行可視化的業務對象)。

使用此代碼:

ListItem listItem = new ListItem(fitnessClassList.getFitnessClass(i).ToString()); 
lbDisplayItems.Items.Add(listItem); 

不要忘記,如果你會使用ListItem你不會有對象,但其顯示的名稱(ToString()的結果)。有關更多詳細信息,請參閱關於ListItem的鏈接。

作爲替代方案,您可以將ListViewDataSource設置爲您的fitnessClassList(如果它以任何方式支持,請參閱此overview on MSDN)。

+0

謝謝你的詳細解釋:) – 2012-03-22 21:08:38

0

方法添加預計ListItem對象(或字符串,見下面的鏈接),但你傳遞一個自定義類。

你可能想以下幾點:

lbDisplayItems.Items.Add(new ListItem(fitnessClassList.getFitnessClass(i).ToString())); 

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listitemcollection.aspx - 只有2 「添加」 方法。

請參閱http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listitem.aspx瞭解可用的構造函數。

+0

它不應該是這樣,因爲我的fitnessClassList在其中有fitnesClass對象,我試圖通過它們。我認爲ToString將被顯示在列表框中的每一個對象 – 2012-03-22 21:01:04

+0

謝謝你的解釋我是新的Asp.net和我感謝它 – 2012-03-22 21:08:08

0

您需要使用列表框中的.DataSource和.DataBind屬性。

lbDisplayItems.DataSource = fitnessClassList; 
lbDisplayItems.DataBind(); 

退房此鏈接的一個小例子 http://asp-net-example.blogspot.com/2011/10/how-to-databind-listbox-using-stack.html

+0

謝謝你的回覆:) – 2012-03-22 21:17:42

+0

不客氣。我在下面看到你的回覆,你是Asp.Net的新手。我建議你研究數據源/數據綁定模式,因爲幾乎所有的Asp.Net數據控件都使用這種模式。它會派上用場,因爲你建立更多的控制。祝你好運 – mellodev 2012-03-22 21:33:03

1

聽起來像要在列表框中顯示「自定義」項目。我得到它的工作做到以下幾點:

  • 我創建了一個用戶控件,它具有我想要的名爲MyListItem的控件。在我的情況下,我想要一個複選框和文本框。
  • 我創建了一個新的myListBox,它繼承自ListBox並創建了一個Add方法。此方法執行了以下操作:
  • 它有一個用於顯示文本的字符串參數
  • 它創建了MyListItem的實例並將文本字符串分配給其Text屬性。
  • 我分配了一個事件處理程序來響應checkBox檢查事件。
  • 我將我的自定義項目添加到myListBox.controlls。

當我編程添加項目myListBox,我的自定義項目被顯示!

相關問題