我想保存下拉列表中的值,但它只保留原始值?我看到的是做真假的更有效方式吗?关于衰退的问题。
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>
答案 0 :(得分:0)
我在这里看到一个问题:
dpstatus.SelectedIndex = Convert.ToInt32(query.isEnabled);
SelectedIndex是指下拉列表中列表项的索引,而不是项的值。我认为您打算做的是根据值选择项目,如下所示:
dpstatus.SelectedValue = Convert.ToInt32(query.isEnabled).ToString();