2012-03-28 21 views
2

Ich habe eine Mitarbeiterregistrierungsseite mit Dropdown-Liste erstellt. Diese wird verwendet, um die Priorität für jeden Benutzer auszuwählen. Angenommen, ich möchte einige Benutzerdetails in dieser Zeit bearbeiten, verwende den folgenden Code, um die Dropdown-Liste auszuwählen. Es gibt einen Wiederholungswert ohne den ersten Index zurück. Das bedeutet, ein Benutzer hat eine 3. Priorität, dh er wählt die dritte Priorität ohne 1. Priorität aus.Doppeltes Element in der Dropdown-Liste

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"]); 
      } 

Dropdown den folgenden Wert an, nachdem nach der Bindung

3rd priority 
    2nd priority 
    3rd priority 

bitte helfen Sie mir

1st priority 
    2nd priority 
    3rd priority 

Dropdown zeigen den unter Wert Bindung diesen Fehler zu beheben ..

+0

nur das machen ** SelectedIndex ** entsprechend –

+0

ist nicht gespeichert, dass Indexwert – FDO

+0

was ?? Ich habe es überhaupt nicht –

Antwort

1

können Sie die FindByValue Methode verwenden, um die Dropdownliste für ein Element mit einem Wert zu suchen.

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

Alternativ können Sie die FindByText Methode verwenden, um die Dropdownliste für ein Element mit Text Anpassung der Parameter zu suchen.

Bevor Sie die FindByValue-Methode verwenden, vergessen Sie nicht, die DropDownList so zurückzusetzen, dass keine Elemente mithilfe der ClearSelection() -Methode ausgewählt werden. Es löscht die Listenauswahl und setzt die Selected-Eigenschaft aller Elemente auf false. Andernfalls erhalten Sie die folgende Ausnahme.

"Cannot have multiple items selected in a DropDownList" 
0

Bitte wie unter

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

es nicht ausgewählten Wert akzeptiert. – FDO

+0

können Sie bitte Ihren Code posten? – PraveenVenu

+0

sehen Sie meinen Beitrag wieder – FDO

2

Sie möchten nicht die des aktuell ausgewählten Elements ändern. Sie möchten die Auswahl selbst ändern. Hierfür können Sie die SelectedIndex oder die SelectedValue Eigenschaft der DropDownList verwenden.

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

Natürlich muss ein Wert sein, der dr["fldperiority"] übereinstimmt. Vielleicht ist dies das Textfeld und Sie benötigen das Feld PK/FK. Anpassung der Parameter

+0

Dieser Schritt wurde übersprungen, wenn der ausgewählte Wert verwendet wird. – FDO

0

Wenn noch oben genannten Antworten sind nicht für Sie funktioniert, versuchen Sie so etwas wie dieses

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

Dropdown-Listenwert ist dynamisch, nicht statisch. – FDO

+0

Setzen Sie nicht das ** Datenwertfeld ** und ** Datatxtfeld ** ?? –

Verwandte Themen