2012-07-24 41 views
1

我有一个dropdownlist在我的asp.net页面下拉列表的selectedIndex不节能

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

回答

1

确保SelectedValue的设置只在页面第一次加载完成的 - 而不是在完成后回,即..

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

谢谢这么多,它解决了我的问题:) – 2012-07-24 10:59:24

0

确保值赋给在下拉列表中,只有当页面加载在第一时间

试试这个

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

这将阻止发送到数据库,而不是新建一个

希望我帮助

0

我张贴在这里希望这是为他人,也为我今后的参考有用的旧值。我遇到了一个dropdownlist没有保存我在代码中设置的selecteditem的问题。在做了一些挖掘之后,我发现这个错误是我自己的(尽管基于我不知道的dropdownlist的限制)。我正在使用我创建的项目动态填充下拉列表。我给每个项目独特的文字,但不是一个独特的价值。显然这会造成混乱。所以,如果您遇到此问题,请检查每个dropdownlist项目是否具有唯一值。

相关问题