0

次のドロップダウンがあります

<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>

Activeデータセットに入っても、ドロップダウンのデフォルトで選択されたテキストは常に残りますBlock

私はそれを間違って設定していると思いますデータセットから受け取った値を設定するコードは次のとおりです

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
4

1 に答える 1

2

値がある場合は、テキストではなく直接値を設定する必要があります:-

ddlCardStatus.SelectedValue = ds.Tables(0).Rows(0).Item("Status").Value

Null をチェックすることはでき0ますが、ドロップダウンにそのような ListItem がないため、Null に設定しても意味がありません。

アップデート:

DB からテキストを渡しているため、ドロップダウン コレクションでそのテキストを見つけて選択することができます。

String cardStatus = ds.Tables(0).Rows(0).Item("Status")
ddlCardStatus.Items.FindByText(cardStatus).Selected = True

または、ドロップダウン コレクションから値を見つけて、選択した値を設定できます。

String cardStatus = ds.Tables(0).Rows(0).Item("Status")
ddlCardStatus.SelectedValue = ddItems.Items.FindByText(cardStatus).Value
于 2015-09-18T08:15:17.030 に答える