【发布时间】:2018-07-26 17:10:39
【问题描述】:
我继承了一个必须更新的网站,但下拉列表出现问题。 一个页面上有两个 asp.net 下拉列表框。它们是 ddlReminderUser1 和 ddlReminderUser2。当页面加载一个函数时,会从 SQL DB 中提取数据并设置一些隐藏字段值。根据这些值设置下拉列表。
问题是有两个下拉列表,只有一个在设置选择的值,另一个没有。
这里是下拉列表的 HTML:
<asp:DropDownList runat="server" ID="ddlReminderUser1" AutoPostBack="true" CssClass="text-primary mt-1 width125" Visible="false" OnSelectedIndexChanged="ddlReminderUser1_SelectedIndexChanged"></asp:DropDownList>
<asp:ImageButton ID="btnXUser1" runat="server" AlternateText="X" ImageUrl="~/Images/red-x-md15x15.png" ToolTip="Click to remove user 1" Visible="false" />
<br />
<asp:DropDownList runat="server" ID="ddlReminderUser2" AutoPostBack="true" CssClass="text-primary mt-1 width125" Visible="false" OnSelectedIndexChanged="ddlReminderUser2_SelectedIndexChanged"></asp:DropDownList>
<asp:ImageButton ID="btnXUser2" runat="server" AlternateText="X" ImageUrl="~/Images/red-x-md15x15.png" ToolTip="Click to remove user 2" Visible="false" />
这是后面的代码(在 VB 中):
'Set user names in ddl's
With ddlReminderUser1
.Visible = True
If getAdList(1) < 1 Then
message = "Can't get user list from AD for Notifications.\nError: SQL104\nPlease contact the Help Desk for support."
alertMessage(message)
.SelectedIndex = 0
Else
.SelectedValue = hUser1.Value.ToString()
btnXUser1.Visible = True
End If
End With
'Check for second email address
If ddlNumberOfUsers.SelectedIndex = 2 Then
ddlReminderUser2.Visible = True
If getAdList(2) < 1 Then
message = "Can't get user list from AD for Notifications.\nError: SQL104\nPlease contact the Help Desk for support."
alertMessage(message)
ddlReminderUser2.SelectedIndex = 0
Else
ddlReminderUser2.SelectedValue = hUser2.Value.ToString()
btnXUser2.Visible = True
End If
'With ddlReminderUser2
' .Visible = True
' If getAdList(2) < 1 Then
' message = "Can't get user list from AD for Notifications.\nError: SQL104\nPlease contact the Help Desk for support."
' alertMessage(message)
' .SelectedIndex = 0
' Else
' .SelectedValue = hUser2.Value.ToString()
' btnXUser2.Visible = True
' End If
'End With
End If
注释掉的部分得到完全相同的结果。我虽然也许 With 语句是我的问题,但它似乎不是。
函数 getAdList 工作正常,因为当我检查下拉列表时,它包含广告名称列表。
这就是我得到的:
说选择用户的下拉列表应该显示第二个名称,我验证它在数据库中,并且隐藏字段值正确。我错过了什么?我已经盯着这部分代码看了几个小时,但我什么都没做。
有人有想法吗?
提前谢谢...
【问题讨论】:
-
If ddlNumberOfUsers.SelectedIndex = 2...您确定所选索引是2而不是1? (考虑到“Number of Users 1”可能是第一项) -
您是否设置了断点并单步执行了代码?您在单步执行时检查过
hUser2.Value的值吗?设置选定值时ddlReminderUser2中是否有任何项目?是否有与您尝试设置的值相同的项目?getAdList()是做什么的? -
Schandensbegrenzer:是的,它是 2,因为该列表共有三个项目。 0、1 和 2。 Jon P:是的,我设置了一个 BP 并逐步执行了代码。它直接进入 ddlReminderUser2 的 Else 语句,但由于某种原因,它不会设置它。是的,列表在尝试设置之前已填充。我可以在页面加载后单击列表并查看名称列表。是的,我尝试将其设置为的项目在列表中具有匹配项。 getAdList 从 Active Directory 中提取用户名列表,它工作正常,因为该列表在页面加载后出现在两个下拉列表中。
-
有人有什么想法吗??
标签: html asp.net vb.net dropdown