我有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列表中反复选择,则此逻辑会失败。它会从第二个列表中重新创建。
如何处理这种情况
答案 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}}