在不同的下拉列表中删除和添加时间值

本文关键字:添加 时间 删除 下拉列表 | 更新日期: 2023-09-27 18:19:28

根据7天,我有14个Dropdownlist
类似于一天,第一个下拉列表命名为"开始时间",第二个下拉列表为"结束时间"
列表值由30分钟的时间差设置
To Time dropdownlist应该只保存在From Time 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);
                }
            }
        }

但如果我从第一个下拉列表中一次又一次地选择,这个逻辑就会失败。它会从第二个下拉列表重新移动所有内容。

如何处理这种情况

在不同的下拉列表中删除和添加时间值

假设您的代码成功删除了Items,那么在从from Time DropDown(s)中连续多次选择后,To Time DropDowns可能最终为空是有道理的。

不使用.RemoveAt(),您可以.Clear()您的To Time DropDowns,然后.Add()从from Time DropDown的SelectedIndex及以后的Items。

    // ...
    // 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[] 上工作