DropDownList没有更新到数据库

时间:2014-09-24 23:04:06

标签: c# asp.net drop-down-menu webforms

我有三个下拉列表被填充,两个来自DB,另一个来自XML文件。问题是我在submit方法中丢失了选定的值,我试图用这些下拉列表中的值更新数据库。这是使用数据库的其中一个DDL的标记和代码:

<div class="form-group">
    <label class="col-lg-2 control-label" for="deptsDDL">Department *</label>
    <div class="col-lg-6">
        <asp:DropDownList ID="deptsDDL" class="form-control" placeholder="Department"
            runat="server"></asp:DropDownList>
        <asp:RequiredFieldValidator id="deptReqVal" runat="server"  
            ControlToValidate="deptsDDL" CssClass="text-danger" 
            InitialValue="Choose Department" 
            Display="Dynamic">* Select Department</asp:RequiredFieldValidator>
    </div>
</div>

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        deptsDDL.Items.Add(new ListItem("Choose Department", "Choose Department"));
        using (IDataReader deptReader = SiteDALC.GetDepartments())
        {
            while (deptReader.Read())
            {
                deptsDDL.Items.Add(new ListItem(deptReader.GetValue(0).ToString(),
                    deptReader.GetValue(0).ToString()));
            }
            var accountDept = SCWebUser.Current.ADProfile.Department;
            if (deptsDDL.Items.FindByText(accountDept) != null)
                deptsDDL.SelectedIndex = 
                    deptsDDL.Items.IndexOf(deptsDDL.Items.FindByText(accountDept));
        }
    }
}

protected void RegisterBtn_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
        SiteDALC.UpdateRegistration(
            SCWebUser.Current.ADProfile.Username,
            inputFirstName.Text.Trim(),
            inputLastName.Text.Trim(),
            "530" + phone1.Text.Trim() + phone2.Text.Trim(),
            inputExtension.Text.Trim(),
            faxNum,
            cellNum,
            titleDDL.SelectedValue,
            addressDDL.SelectedValue,
            city.Text.Trim(),
            "CA",
            zip.Text.Trim(),
            deptsDDL.SelectedValue,
            DateTime.Now);
    }
}

我没有看到问题,但怀疑我没有掌握DataTextDield和DataValueField属性。

有人可以建议修复吗?

1 个答案:

答案 0 :(得分:0)

事实证明我在我的Web.config文件中有以下内容:

<pages controlRenderingCompatibilityVersion="4.0" enableViewState="false">
    ...
</pages>

我不知道它是如何实现的,但显然ViewState在站点级别被禁​​用。

捂脸