2

dropdownlist在我的 asp.net 页面中有一个

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

3 回答 3

1

确保SelectedValue仅在页面第一次加载时完成设置 - 而不是在回发时完成,即..

if(!Page.IsPostBack)
{
  rdblstcookinglevel.SelectedValue = user.CookingLevel;
}
于 2012-07-24T10:50:10.110 回答
0

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

试试这个

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

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

希望我有所帮助

于 2012-07-24T10:55:50.963 回答
0

我在这里发帖希望这对其他人以及我将来的参考有所帮助。我遇到了下拉列表不包含我在代码中设置的选定项的问题。经过一番挖掘,我发现错误是我自己的(尽管基于我不知道的下拉列表的限制)。我正在用我创建的项目动态填充下拉列表。我给每个项目唯一的文本,但不是唯一的值。显然这会引起混乱。因此,如果您遇到此问题,请检查每个下拉列表项是否具有唯一值。

于 2016-06-14T13:51:04.527 回答