添加的项目相乘(列表框/下拉框)

Added Items multiply (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 < getSurnameData.countData; i++)
{
     ListBox1.Items.Insert(i, getSurnameData.StringData[i]);  //Writes the Outcome into a Listbox
}

问题是,如果我按下按钮,页面会重新加载,项目会一次又一次地添加。这导致了一个巨大的列表框,我按下按钮的次数越多。

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

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

listbox1.Items.Clear();

如果没有清除它会将数据附加到列表框的现有值中。

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

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