我有三个下拉列表被填充,两个来自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属性。
有人可以建议修复吗?
答案 0 :(得分:0)
事实证明我在我的Web.config文件中有以下内容:
<pages controlRenderingCompatibilityVersion="4.0" enableViewState="false">
...
</pages>
我不知道它是如何实现的,但显然ViewState在站点级别被禁用。