Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DropDownList未更新到数据库_C#_Asp.net_Drop Down Menu_Webforms - Fatal编程技术网

C# DropDownList未更新到数据库

C# DropDownList未更新到数据库,c#,asp.net,drop-down-menu,webforms,C#,Asp.net,Drop Down Menu,Webforms,我有三个正在填充的下拉列表,两个来自DB,另一个来自XML文件。问题是,我正在尝试使用这些下拉列表中的值更新数据库的submit方法中丢失所选的值。以下是使用DB的DDL之一的标记和代码: <div class="form-group"> <label class="col-lg-2 control-label" for="deptsDDL">Department *</label> <div class="col-lg-6">

我有三个正在填充的下拉列表,两个来自DB,另一个来自XML文件。问题是,我正在尝试使用这些下拉列表中的值更新数据库的submit方法中丢失所选的值。以下是使用DB的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);
    }
}

系*
*选择部门
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!Page.IsPostBack)
{
deptsdl.Items.Add(新列表项(“选择部门”、“选择部门”));
使用(IDataReader depreader=SiteDALC.GetDepartments())
{
while(depreader.Read())
{
deptsdl.Items.Add(新的ListItem(deptrader.GetValue(0).ToString()),
GetValue(0.ToString());
}
var accountDept=SCWebUser.Current.ADProfile.Department;
if(deptsdl.Items.FindByText(accountDept)!=null)
deptsdl.SelectedIndex=
deptsdl.Items.IndexOf(deptsdl.Items.FindByText(accountDept));
}
}
}
受保护的无效注册表项单击(对象发送方,事件参数e)
{
如果(第页有效)
{
SiteDALC.UpdateRegistration(
SCWebUser.Current.ADProfile.Username,
inputFirstName.Text.Trim(),
inputLastName.Text.Trim(),
“530”+phone1.Text.Trim()+phone2.Text.Trim(),
inputExtension.Text.Trim(),
法克努姆,
塞尔纳姆,
titleDDL.SelectedValue,
addressDDL.SelectedValue,
city.Text.Trim(),
“CA”,
zip.Text.Trim(),
deptsdl.SelectedValue,
日期时间(现在);
}
}
我并没有完全看到问题,但怀疑我没有掌握DataTextDield和DataValueField属性


有人能提出解决方案吗?

事实证明,我的Web.config文件中包含以下内容:

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

...
我不知道这是怎么做到的,但显然ViewState在站点级别被禁用了


FacePalm您可以在回发中包含您试图访问值的代码(返回空值的点)吗?我刚刚添加了它Mike-调试器中此时返回空值。当页面呈现时,DDL是填充的还是空的?您选择的项目仍然处于选中状态吗?它们在页面加载时填充得很好,并选择了正确的项目,但在postback上丢失了我的意思是,当它在postback上呈现时。页面上有什么?我希望ddl(异常地)是空的。