在不同的DropDownlists中删除和添加时间值

时间:2012-01-03 06:34:50

标签: c# asp.net asp.net-ajax

我有14个Dropdownlist累积到7天 喜欢一天第一个下拉列表被命名为From-Time和Second Dropdown列表是To-Time 列表值设置为30分钟时差 To-Time下拉列表应该只保存那些落在From-time Dropdownlist之后的列表项。如果我先选择1 Pm,那么第二个下拉列表应该在1 Pm之后带有list-items。 删除就像这样......

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

            }

        }

但如果我从First Dropdown列表中反复选择,则此逻辑会失败。它会从第二个列表中重新创建。

如何处理这种情况

1 个答案:

答案 0 :(得分:2)

假设您的代码成功删除了Items,那么从From-Time DropDown中连续多次选择后,To-Time DropDowns最终可能会变为空。

您可以.RemoveAt()使用.Clear()而不是使用.Add(),然后 // ... // 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]); } 来自其选定索引及之后的From-Time DropDown中的项目。

DropDownList[]

您必须对此进行修改才能使用{{1}}