DropDown保存正确的值

时间:2014-11-10 23:16:37

标签: c# asp.net entity-framework

我想保存下拉列表中的值,但它只保留原始值?我看到的是做真假的更有效方式吗?关于衰退的问题。

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>

1 个答案:

答案 0 :(得分:0)

我在这里看到一个问题:

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

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

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