2011-10-05 72 views
0

在我的Page_Init方法中,我创建了1个checkboxlist(填充项目)和几个下拉列表,等于checkboxlist中的项目数量(6checkboxlistitems - > 6 dropdownlists)。从几个下拉列表中获取值

这两个项目的下拉列表都与数据有关(项目代表每周的每一天,下拉列表中填充了一天的4个时间段)。我为每个项目创建一个下拉列表,并为其指定id = item.text。从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"; 
     } 

代码从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 --); 

      } 
     } 

选择相应的项目时,你怎么能采取从每个下拉列表的价值?

回答

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巴拉,我不知道FindControl():) – Thomas