C# 添加的项目倍增(列表框/下拉框)

C# 添加的项目倍增(列表框/下拉框),c#,asp.net,listbox,dropdownbox,C#,Asp.net,Listbox,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

我有几个列表框,想向其中添加项目。 所以我有一个按钮和一个列表框:

<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
问题是,如果我按下按钮,页面会重新加载,项目会一次又一次地添加。这导致了一个巨大的列表框,我越按按钮


有什么办法可以防止这种情况发生吗?

在每个按钮上,首先单击,您应该使用下面的代码清除列表框的内容

listbox1.Items.Clear();
如果未清除,则会将数据附加到listbox的现有值

在您的例子中,for循环正在向列表框添加值 所以在for循环之前,先进行编码

listbox1.Items.Clear();
for (i = 0; i < getSurnameData.countData; i++)
{
 ListBox1.Items.Insert(i, getSurnameData.StringData[i]);  
}
listbox1.Items.Clear();
对于(i=0;i
我已经试过了。但是,当我想读出所选项目并按下按钮时,它会读出“null”。加载列表框中的数据时,所选项目会在同一按钮按下时读取?可能发生的情况是,如果我选择该项目,然后按下按钮,它会清除数据,重新写入数据并取消选择该项目。我只是试着去bug,但是一切都很好。这些值是不同的吗?如果是,请检查列表中是否已经包含有问题的项:
If(!ListBox.Items.contains(getnamesdata.StringData[i])…
谢谢rdoubleui,我从来没有想过。现在就可以使用它了。
listbox1.Items.Clear();
for (i = 0; i < getSurnameData.countData; i++)
{
 ListBox1.Items.Insert(i, getSurnameData.StringData[i]);  
}