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>
我在这里看到一个问题:
dpstatus.SelectedIndex = Convert.ToInt32(query.isEnabled);
SelectedIndex指的是下拉列表中列表项的索引,而不是该项的值。我认为你打算做的是根据价值选择项目,比如:
dpstatus.SelectedValue = Convert.ToInt32(query.isEnabled).ToString();