2015-06-30 86 views
1

我有幾個Listboxes,並且想要添加項目到它。 所以我有一個按鈕和一個列表框:添加項目乘(列表框/ Dropdownbox)

<asp:ListBox ID="ListBox1" runat="server" Rows="5"></asp:ListBox>  
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> 

我在C#代碼項目添加到列表框:

for (i = 0; i < getSurnameData.countData; i++) 
{ 
    ListBox1.Items.Insert(i, getSurnameData.StringData[i]); //Writes the Outcome into a Listbox 
} 

的問題是,如果我按下按鈕時,頁面重新加載並再次添加項目。這導致一個巨大的Listbox,我按下按鈕的次數越多。

任何想法我可以如何防止?

+0

是價值觀不同?如果是這樣,檢查列表是否已經包含有問題的項目:'if(!ListBox.Items.Contains(getSurnameData.StringData [i])...' – rdoubleui

+0

謝謝rdoubleui,我從來沒有想到這一點,現在就開始工作。 –

回答

0

每個按鈕上點擊第一個你應該使用下面的代碼

listbox1.Items.Clear(); 

清除列表框中的內容如果不清除就會將數據追加到列表框中的現有值。

你的情況爲循環增加值的列表框 如此前的for循環做編碼

listbox1.Items.Clear(); 
for (i = 0; i < getSurnameData.countData; i++) 
{ 
ListBox1.Items.Insert(i, getSurnameData.StringData[i]); 
} 
+0

我已經試過了,但是當我想讀出所選項並按下按鈕時,它會讀出'null'。 –

+0

加載列表框中的數據在同一個按鈕中讀取的選定項目按? – Sachu

+0

可能發生的情況是如果我選擇該項目,然後按下按鈕,它將清除數據,重新寫入並取消選擇項目。我只是試圖解決它,但一切正常。 –