2014-09-24 7 views
0

У меня есть три списка выпадающих списков, два из DB и еще один из XML-файла. Проблема в том, что я теряю выбранные значения в методе submit, где я пытаюсь обновить базу данных со значениями из этих выпадающих списков. Вот разметка и код для одного из DDL, используя БД:DropDownList не обновляет базу данных

<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

Вы можете включить код на постбэка, где вы пытаетесь получить доступ к значениям (в момент, когда они возвращаются пустыми)? – MikeSmithDev

+0

Я только что добавил его, Майк - они возвращаются в этот момент в отладчике. – IrishChieftain

+0

И когда страница отображается, являются ли DDL заполненными или пустыми? Выбран ли выбранный элемент? – MikeSmithDev

ответ

0

Оказывается, у меня был следующий в моем файле Web.config:

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

Я понятия не имею, как это получило там, но, очевидно, ViewState был отключен на уровне сайта.

Facepalm
Смежные вопросы