在不同的下拉列表中删除和添加时间值
本文关键字:添加 时间 删除 下拉列表 | 更新日期: 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[]
上工作