Web 窗体列表框 - 如果列表框已包含项,则添加项不起作用



我有一个列表框:

<asp:ListBox runat="server" ID ="lbxIncidentsSel" Rows="4" SelectionMode="Single"></asp:ListBox>

点击按钮触发一些代码添加一些项目:

Protected Sub btnIncidentsAdd_Click(sender As Object, e As EventArgs)
Dim lbxIncidentsSel As ListBox = CType(NormalFormView.FindControl("lbxIncidentsSel"), ListBox)        
' logic here is unimportant
lbxIncidentsSel.Items.Add(SomeItem) ' this can be a list of items
lbxIncidentsSel.DataBind()
End Sub

对于我尝试添加的第一个项目,这些项目将添加得很好,并显示在页面上的lbxIncidentsSel列表框中。

我尝试添加的下一个项目,这些项目将正确添加到代码后面,我可以在Items向下钻取中看到它们,但在页面呈现时,它们不显示

如果我试图重新添加相同的项目或其他项目,在代码后面,第二批不再在列表中,整个过程重复-它会正确地将其添加到代码后面,但不会添加到显示器上。

为什么这适用于我添加的第一个项目(或一组项目(,而不适用于其他项目

请注意,代码在vb.net中,但问题发生在c#codebehind too 中

我通过将ListBox中存在的项目记录在一个单独的列表中,然后在添加记录的列表和新条目之前清除实际的ListBox来解决这个问题。

我不知道为什么这是必要的,这似乎是一种奇怪的行为,但我们开始了。

最新更新