我在ASP.NET网络表单上的DropDownList控件(请参阅下文)遇到问题。
<asp:DropDownList ID="DropDownList_Approved" runat="server">
<asp:ListItem Value="No">No</asp:ListItem>
<asp:ListItem Value="Yes">Yes</asp:ListItem>
<asp:ListItem Value"NA">n/a</asp:ListItem>
</asp:DropDownList>
我从数据库中读取控件的值,它是“是”,“否”或“ NA”(保存在核准文本中),然后使用以下命令将该值设置为控件中的“选定”值以下代码:
DropDownList_Approved.SelectedIndex = DropDownList_Approved.Items.IndexOf (DropDownList_Approved.Items.FindByValue (approvedText));
我使用以下代码读取控件的选定值以将其保存到数据库中
string approved = DropDownList_Approved.SelectedValue;
问题在于,此时,无论选择了哪个下拉选项,第一项(“否”)都是保存回数据库的内容。但这仅在我在PageLoad的下拉列表中设置所选项目时才会发生。如果我不使用“ DropDownList_Approved.SelectedIndex”代码,则保存到数据库的值为下拉的SelectedValue。
我在代码中做错什么了?
谢谢。
答案 0 :(得分:0)
您需要在if(!Page.IsPostBack)
块的Page_Load
中设置下拉列表值。
if(!Page.IsPostBack)
{
// Set dropdown value from database
}
每当调用按钮单击事件时,它都会先调用Page_Laod
,以便它将当前选定的值重置为数据库从页面加载时设置的值。