ListBox项目无法选择(ASP/VB.NET)

3

我有一个简单的ASPX页面,其中包含一个列表框和一个按钮。列表框中有大约8-10个项目。用户选择一个项目(列表框是多选)并点击按钮后,我正在遍历这些项目以获取所选的项目,如下所示:

    For Each Item As ListItem In lstLetters.Items
        If Item.Selected Then
            Dim LetterID As String
            LetterID = Item.Value
            LetterIDs.Add(LetterID)
        End If
    Next

当我逐步执行代码时,我从列表框中选择第一项。我在'Item'变量上设置监视器。代码将遍历每个项目--但是Item.Selected始终为“False”。
我仔细检查了页面,确实我的项目在表单上被选中。
发生了什么?
提前感谢,
杰森

你绑定数据的位置在哪里?你能发布一下你的Page_Load吗? - euther
2个回答

5

你有可能在每次 postback 时重新绑定列表框,这是一个常见的错误。请确保只有在 IsPostBack 为 false 时才填充该控件。除此之外,你的代码看起来没问题。


现在我的列表框没有任何项可以迭代... 真令人沮丧! - user724198
检查你的代码... 在你的页面加载或控件加载事件中,你会做这样的事情:if (!IsPostback) { // ... 填充列表框 }对吧?然后当用户选择某些内容并点击按钮时,你会得到一个回发(postback),并且你应该能够获取所选内容。 - kprobst
是的,我正在按照你说的方式填充数据。但是,现在没有任何项目可以循环遍历了,它们已经被清除了。 - user724198
也许像 @euther 建议的那样,发布更多的代码会更好。很难知道发生了什么。 - kprobst
糟糕!我把填充列表框的程序放在了PostBack的“IF”语句中,完全忘记了刚刚上面两行的“ListBox.Items.Clear”语句!!!感谢您的帮助,kprobst! - user724198

0

我曾经遇到过类似的情况,但那是因为列表框的Enabled属性在其他代码中被设置成了False。直到我将其设置为true,所选索引才会保留-1。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接