2011-10-05 4 views
0

Dans ma méthode Page_Init, je crée une liste de contrôle (remplie d'éléments) et plusieurs listes déroulantes égales à la quantité d'éléments dans checkboxlist (6checkboxlistitems -> 6 dropdownlists). Les deux, éléments et listes déroulantes sont liés aux données (les éléments représentent chaque jour de la semaine, les listes déroulantes sont remplies avec 4 périodes d'une journée). Je crée une liste déroulante pour chaque article et lui donne id = item.text.obtenir des valeurs à partir de plusieurs listes déroulantes

code de la méthode Page_Init:

 foreach (ListItem item in chkListContact.Items) 
     { 
      ddlTimePeriod = new DropDownList(); 
      ddlTimePeriod.ID = item.Text; 
      ddlTimePeriod.CssClass = "dropdownlistContact"; 
      ddlTimePeriod.DataSource = datasrcTimePeriod; 
      ddlTimePeriod.DataTextField = "TimePeriodName"; 
      ddlTimePeriod.DataValueField = "TimeToCallID"; 
      ddlTimePeriod.DataBind(); 
      dllPanel.Controls.Add(ddlTimePeriod); 
      dllPanel.ID = "dllPanel"; 
     } 

code de la Button_Click:

 foreach (ListItem item in chkListContact.Items) 
     { 
      // 
      if (item.Selected) 
      { 
       //Here I want to get the values from the selected items and corresponding dropdownlist value and send it to database 
       cmdTimeToCall.Parameters.Clear(); 
       cmdTimeToCall.Parameters.Add("PersonId", personid); 
       cmdTimeToCall.Parameters.Add("DayOfWeekId", Convert.ToInt32(item.Value)); 
       cmdTimeToCall.Parameters.Add("TimeToCallId", --VALUE FROM DROPDOWNLIST OF CORRESPONDING ITEM --); 

      } 
     } 

Comment pouvez-vous prendre la valeur de chaque dropdownlist lorsque l'élément correspondant est sélectionné?

Répondre

1
if (item.Selected) 
{ 
    DropDownList ddlTimePeriod = (DropDownList) dllPanel.FindControl(item.Text); 

    // now use ddlTimePeriod.SelectedItem.Text, ddlTimePeriod.SelectedItem.Value 

    cmdTimeToCall.Parameters.Clear(); 
    cmdTimeToCall.Parameters.Add("PersonId", personid); 
    cmdTimeToCall.Parameters.Add("DayOfWeekId", Convert.ToInt32(item.Value)); 
    cmdTimeToCall.Parameters.Add("TimeToCallId", --VALUE FROM DROPDOWNLIST OF CORRESPONDING ITEM --); 

} 
+0

thx Bala, je ne connaissais pas le FindControl() :) – Thomas

Questions connexes