DropdownList selectedIndex不保存

时间:2012-07-24 10:46:51

标签: asp.net

我的asp.net页面中有dropdownlist

<asp:RadioButtonList ID="rdblstcookinglevel" runat="server" CellPadding="0" 
    CellSpacing="0" >
    <asp:ListItem>Novice</asp:ListItem>
    <asp:ListItem>Beginner</asp:ListItem>
    <asp:ListItem>Intermediate</asp:ListItem>
    <asp:ListItem>Expert</asp:ListItem>
    <asp:ListItem>Professional</asp:ListItem>
</asp:RadioButtonList>

在页面加载时,selectedvalue是根据来自数据库的值设置的。

rdblstcookinglevel.SelectedValue = user.CookingLevel;

但是当页面上的用户更改选择时,selectedindex不会更改,因此旧的选定值将被发送回数据库。

User.CookingLevel = rdblstcookinglevel.SelectedValue;

3 个答案:

答案 0 :(得分:1)

确保SelectedValue的设置仅在页面的第一次加载时完成 - 而不是在帖子后面进行,即......

if(!Page.IsPostBack)
{
  rdblstcookinglevel.SelectedValue = user.CookingLevel;
}

答案 1 :(得分:0)

确保将值分配给下拉列表仅在第一次加载页面时

试试这个

If(!IsPostBack)
   {
       rdblstcookinglevel.SelectedValue = user.CookingLevel;
   }

这将阻止旧值发送到数据库而不是新值

希望我帮助

答案 2 :(得分:0)

我在这里发帖,希望这对其他人有用,也是我将来的参考资料。我遇到的问题是下拉列表没有保存我在代码中设置的选择项。在做了一些挖掘之后,我发现错误是我自己的(尽管基于我不知道的下拉列表的限制)。我用我创建的项目动态填充下拉列表。我给每个项目提供了唯一的文本,但不是唯一的值。显然这会引起混乱。因此,如果您遇到此问题,请检查每个下拉列表项是否具有唯一值。