2012-01-03 67 views
1

我有14個Dropdownlist累計到7天。
Like一天第一個下拉列表被命名爲從時間,第二個下拉列表爲準時。
列表值由30分鐘時差設置。
到達時間dropdownlist應該只保存那些在從時間Dropdownlist之後的列表項。如果我先選擇1個Pm,然後第二個下拉列表應該在1個Pm之後包含列表項。 去除像這樣做..在不同的下拉列表中刪除和添加時間值

protected void ddlMonst_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      RemoveListItem(sender as DropDownList,checkboxes); 
     } 
     private void RemoveListItem(DropDownList DDl,DropDownList[] checkboxes) 
     { 
      int CurrrentSelectedIndex = DDl.SelectedIndex; 
      String StartDDlName = DDl.ID.Substring(3, 3).ToString() + "ed"; 
      String TargetedDDlName = string.Empty; 
      for (int i = 0; i < checkboxes.Length; i++) 
      { 
       TargetedDDlName = checkboxes[i].ID.Substring(3, 5).ToString() ; 
       if (StartDDlName.Equals(TargetedDDlName)) 
       { 
        for(int j=0 ;j<CurrrentSelectedIndex;j++) 
        checkboxes[i].Items.RemoveAt(0); 
       } 

      } 

     } 

,但如果我連連選自第一個下拉list.It reomoves所有從第二個這種邏輯故障。

如何處理這種情況

回答

2

假設你的代碼被成功刪除的項目,那麼它是有道理的,在到時間的下拉列表中可能最終從多個連續選擇後是空的從時間下拉(S) 。

而不是使用.RemoveAt(),您可以.Clear()您的接收時間丟失,然後從它的SelectedIndex及以後的從時間DropDown的項目。

// ... 
    // get reference to To/From DropDown(s) here 
    // ... 
    dd_time_to.Items.Clear(); 
    for (int i = dd_time_from.SelectedIndex; i < dd_time_from.Items.Count; i++) 
    { 
     dd_time_to.Items.Add(dd_time_from.Items[i]); 
    } 

你必須修改這個對你DropDownList[]

工作
相關問題