2012-03-28 2 views
2

Я создал страницу регистрации сотрудника с выпадающим списком. Он используется для выбора приоритета для каждого пользователя. предположим, что я хочу отредактировать некоторые детали пользователя в это время, используя приведенный ниже код, чтобы выбрать раскрывающийся список. Он возвращает значение повторения с первым индексом. Это означает, что у пользователя 3-й приоритет означает, что он выбирает третий приоритет, не имея первого приоритета.Дублирующий элемент в выпадающем списке

foreach (DataRow dr in DS.Rows) 
      { 
       txtemail.Enabled = false; 
       pan_addEdit.Visible = true; 
       this.btnSave.Text = "Update"; 
       lbluserid.Text = Convert.ToString(dr["fdluserId"]); 
       txtuername.Text = Convert.ToString(dr["flduser"]); 
       txtPass.Text = Convert.ToString(dr["fldpass"]); 
       txtemail.Text = Convert.ToString(dr["fldemail"]); 
       ddlstatus.SelectedValue = Convert.ToString(dr["fldstatus"]); 
       ddlusergroup.SelectedValue = Convert.ToString(dr["fldgroupId"]); 
       ddldept.SelectedValue = Convert.ToString(dr["flddept"]); 
       ddlperiority.SelectedValue = Convert.ToString(dr["fldperiority"]); 
      } 

выпадающие показывают ниже значение после связывания

1st priority 
    2nd priority 
    3rd priority 

выпадающих показывают ниже значение после связывания

3rd priority 
    2nd priority 
    3rd priority 

пожалуйста, помогите мне исправить эту ошибку ..

+0

просто сделать ** SelectedIndex ** соответственно –

+0

я не сохраняется, что значение индекса – FDO

+0

что ?? я не получил его вообще –

ответ

1

Вы можете использовать метод FindByValue для поиска DropDownList для элемента с совпадающим значением параметра.

ddlperiority.ClearSelection(); 
ddlperiority.Items.FindByValue(dr["fldperiority"].ToString()).Selected = true; 

В качестве альтернативы вы можете использовать метод FindByText для поиска DropDownList для элемента с согласованием текста параметра.

Перед использованием метода FindByValue не забудьте сбросить DropDownList, чтобы никакие элементы не были выбраны с использованием метода ClearSelection(). Он очищает выбор списка и устанавливает для свойства Selected всех элементов значение false. В противном случае вы получите следующее исключение.

"Cannot have multiple items selected in a DropDownList" 
0

Пожалуйста, как показано ниже

ddlstatus.Items.Clear(); 
ddlperiority.Items.Clear(); 
ddlusergroup.Items.Clear(); 
ddldept.Items.Clear(); 
foreach (DataRow dr in DS.Rows) 
      { 
       txtemail.Enabled = false; 
       pan_addEdit.Visible = true; 
       this.btnSave.Text = "Update"; 
       lbluserid.Text = Convert.ToString(dr["fdluserId"]); 
       txtuername.Text = Convert.ToString(dr["flduser"]); 
       txtPass.Text = Convert.ToString(dr["fldpass"]); 
       txtemail.Text = Convert.ToString(dr["fldemail"]); 
       ddlstatus.Items.Add (Convert.ToString(dr["fldstatus"])); 
       ddlusergroup.Items.Add(Convert.ToString(dr["fldgroupId"])); 
       ddldept.Items.Add( Convert.ToString(dr["flddept"])); 
       ddlperiority.Items.Add( Convert.ToString(dr["fldperiority"])); 
      } 
+0

он не принимает выбранное значение. – FDO

+0

не могли бы вы разместить свой код? – PraveenVenu

+0

см. Мое сообщение снова – FDO

2

Вы не хотите менять Text выбранного в данный момент элемента. Вы хотите изменить сам выбор. Для этого вы можете использовать SelectedIndex или свойство SelectedValue DropdownList.

ddlperiority.SelectedValue = Convert.ToString(dr["fldperiority"]); 

Конечно, должно быть значение, которое соответствует dr["fldperiority"]. Возможно, это текстовое поле, и вам нужно поле PK/FK.

+0

Этот шаг был пропущен, когда я использовал выделенное значение. – FDO

0

Если еще выше ответы не работают, попробуйте что-то вроде этого

var item = Convert.ToString(dr["fldperiority"]); 
    switch(item)  
      {   
      case "1st priority": 
       ddlperiority.SelectedIndex = 0; 
       break; 
      case "2nd priority": 
       ddlperiority.SelectedIndex = 1; 
       break; 
      case "3rd priority": 
       ddlperiority.SelectedIndex = 2; 
       break; 
      } 
+0

Значение раскрывающегося списка - динамическое, а не статическое значение. – FDO

+0

Вы не устанавливаете поле ** datavalue ** и ** datatextfield **? –

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