Listbox.SelectedIndex没有改变,经过一些asp属性更改后,出了什么问题?

时间:2012-06-14 14:27:25

标签: asp.net vb.net events

我有一个带有下拉框的表单,上面有两个列表框和两个按钮。

我删除了一个“选择”按钮,因为我刚刚使用了DropDownList1_SelectedIndexChanged,但是在我使用以下建议之前,事件才会触发: 的 Why DropDownList.SelectedIndexChanged event does not fire?

它涉及更改AutoPostBack='true'EnableViewState="true"属性

所以现在DropDownList工作但是有两个列表框,SelectedIndex保持为-1,即使被选中也不会改变。

列表框代码:

<asp:ListBox ID="ListBox1" runat="server" EnableViewState="true" 
    Height="207px" Width="168px"></asp:ListBox>

DropDownList代码:

<asp:DropDownList ID="DropDownList1" runat="server" EnableViewState="true"
    AutoPostBack="true" style="font-weight: 700; margin-left: 26px">

按钮点击事件代码:

If (ListBox1.SelectedIndex < 0) Then 'No user selected
    MsgBox("Please select a user to add from the Listbox on the left.", vbCritical, "ListBox2 Validation Error")
Else

MsgBox现在总是说用户没有被选中但有用户选择,非常奇怪。

有什么想法吗?我认为它与postbacks,page_load或listbox的selectedindex更改事件有关,它在我进行修改之前完美地工作。

1 个答案:

答案 0 :(得分:1)

问题在于回发,填充列表框的代码位于dropbox_load子例程中。这意味着每次在页面上发生更改时列表框都会重新填充,因此selecteditem索引将恢复为-1。