DropDown保存正确的值

本文关键字:保存 DropDown | 更新日期: 2023-09-27 18:30:00

我想保存下拉列表中的值,但它只是停留在原始值?我所看到的从真到假的更有效的方法是什么?犹豫不决。

user _currentUser;
    DBContext _db = new DBContext();
      protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            UserValidationResult userStatus = (UserValidationResult)Session["userStatus"];

            user query = _db.GetCurrentUser(userStatus.User.UserId);

            dpstatus.SelectedIndex = Convert.ToInt32(query.isEnabled);
        }
    }

      protected void btnSave_Click(object sender, EventArgs e)
      {
          UserValidationResult userStatus = (UserValidationResult)Session["userStatus"];

          user query = _db.GetCurrentUser(userStatus.User.UserId);
          if (dpstatus.SelectedItem.Value == "1")
              query.isEnabled = true;
          else
              query.isEnabled = false;
          _db.SaveChanges();
      }

编辑以显示html标记

<h1>User Status </h1>       
        <div class="login-fields">
            Status <asp:DropDownList ID="dpstatus" runat="server">
                <asp:ListItem Value="1">Enabled</asp:ListItem>
                <asp:ListItem Value="0">Disabled</asp:ListItem>
            </asp:DropDownList>

                  <asp:Button ID="btnSave" runat="server" Text="Save" CssClass="button btn btn-success btn-large" OnClick="btnSave_Click" />
            </div>

DropDown保存正确的值

我在这里看到一个问题:

dpstatus.SelectedIndex = Convert.ToInt32(query.isEnabled);

SelectedIndex指的是下拉列表中列表项的索引,而不是该项的值。我认为你打算做的是根据价值选择项目,比如:

dpstatus.SelectedValue = Convert.ToInt32(query.isEnabled).ToString();