Dropdown.SelectedItem.Text 未正确设置值
Dropdown.SelectedItem.Text isnt setting value properly
我有以下下拉菜单
<asp:dropdownlist id="ddlCardStatus" runat="server" Width="150px">
<asp:ListItem Value="E0" Text="Active" ></asp:ListItem>
<asp:ListItem Value="E1" Text="Block"></asp:ListItem>
</asp:dropdownlist>
即使我在数据集中得到 Block
,我的下拉菜单默认选择文本始终保持 Active
。
我想我设置错了
这是从数据集收到的设置值的代码
ddlCardStatus.SelectedItem.Text = ddlCardStatus.Items.FindByValue(
IIf(IsDBNull(ds.Tables(0).Rows(0).Item("Status")), 0,
ds.Tables(0).Rows(0).Item("Status"))).Value
EDITED 这是存储过程中选择 Status
的部分
Select ID,case status when 'E0' then 'Active' when 'E1' then 'Block' end as 'Status' from temp
如果你有一个值,你应该直接设置值,而不是文本:-
ddlCardStatus.SelectedValue = ds.Tables(0).Rows(0).Item("Status").Value
您可以检查 Null,但将其设置为 0
没有任何意义,因为您的下拉列表中没有任何此类 ListItem。
更新:
由于您是从数据库传递文本,因此您可以在下拉集合中找到该文本,然后 select 它:-
String cardStatus = ds.Tables(0).Rows(0).Item("Status")
ddlCardStatus.Items.FindByText(cardStatus).Selected = True
或者您可以从下拉集合中找到值并设置 selected 值:-
String cardStatus = ds.Tables(0).Rows(0).Item("Status")
ddlCardStatus.SelectedValue = ddItems.Items.FindByText(cardStatus).Value
我有以下下拉菜单
<asp:dropdownlist id="ddlCardStatus" runat="server" Width="150px">
<asp:ListItem Value="E0" Text="Active" ></asp:ListItem>
<asp:ListItem Value="E1" Text="Block"></asp:ListItem>
</asp:dropdownlist>
即使我在数据集中得到 Block
,我的下拉菜单默认选择文本始终保持 Active
。
我想我设置错了 这是从数据集收到的设置值的代码
ddlCardStatus.SelectedItem.Text = ddlCardStatus.Items.FindByValue(
IIf(IsDBNull(ds.Tables(0).Rows(0).Item("Status")), 0,
ds.Tables(0).Rows(0).Item("Status"))).Value
EDITED 这是存储过程中选择 Status
Select ID,case status when 'E0' then 'Active' when 'E1' then 'Block' end as 'Status' from temp
如果你有一个值,你应该直接设置值,而不是文本:-
ddlCardStatus.SelectedValue = ds.Tables(0).Rows(0).Item("Status").Value
您可以检查 Null,但将其设置为 0
没有任何意义,因为您的下拉列表中没有任何此类 ListItem。
更新:
由于您是从数据库传递文本,因此您可以在下拉集合中找到该文本,然后 select 它:-
String cardStatus = ds.Tables(0).Rows(0).Item("Status")
ddlCardStatus.Items.FindByText(cardStatus).Selected = True
或者您可以从下拉集合中找到值并设置 selected 值:-
String cardStatus = ds.Tables(0).Rows(0).Item("Status")
ddlCardStatus.SelectedValue = ddItems.Items.FindByText(cardStatus).Value