DropDownList的一个有趣的Bug~
2005-08-30 10:34
288 查看
假设有如下简单代码
private void Page_Load(object sender, System.EventArgs e)
private void LoadRuleType()
private void btnShowValue_Click(object sender, System.EventArgs e)
public override int SelectedIndex
get
int num1 = base.SelectedIndex;
if ((num1 < 0) && (this.Items.Count > 0))
this.Items[0].Selected = true;
num1 = 0;
}
return num1;
}
set
base.SelectedIndex = value;
}
}
看到了吧,在取SelectedIndex时自动进行了判断,只要有数据那么Selected的值就肯定大于等于0,所以我们在查看时发现设置成-1是无效的,它会自动改为0,另外它还做了另外一部操作this.Items[0].Selected = true;这个也就是直接导致Exception产生的原因(我只是想看看SelectedIndex它就把Item[0]的Selected值给改了...),所以大家在调试代码时就千万要小心了(不该看的东西就表看,否则后果很严重D~
)
注:我们暂且先不谈这句代码的必要性this.drpRuleType.SelectedIndex = -1;只是为了说明的需要。
private void Page_Load(object sender, System.EventArgs e)
private void LoadRuleType()
private void btnShowValue_Click(object sender, System.EventArgs e)
public override int SelectedIndex
get
int num1 = base.SelectedIndex;
if ((num1 < 0) && (this.Items.Count > 0))
this.Items[0].Selected = true;
num1 = 0;
}
return num1;
}
set
base.SelectedIndex = value;
}
}
看到了吧,在取SelectedIndex时自动进行了判断,只要有数据那么Selected的值就肯定大于等于0,所以我们在查看时发现设置成-1是无效的,它会自动改为0,另外它还做了另外一部操作this.Items[0].Selected = true;这个也就是直接导致Exception产生的原因(我只是想看看SelectedIndex它就把Item[0]的Selected值给改了...),所以大家在调试代码时就千万要小心了(不该看的东西就表看,否则后果很严重D~
)
注:我们暂且先不谈这句代码的必要性this.drpRuleType.SelectedIndex = -1;只是为了说明的需要。
相关文章推荐
- 探讨C#.NET下DropDownList的一个有趣的bug及其解决办法
- 关于DropDownList的一个有趣的Bug~
- 探讨C#.NET下DropDownList的一个有趣的bug及其解决办法
- C++标准库的一个有趣的小bug(转载)
- C++标准库的一个有趣的小bug
- C++标准库的一个有趣的小bug
- 发现Ubuntu一个有趣的bug
- 一个有趣的和时钟相关的bug
- C++标准库的一个有趣的小bug
- VS2005中的一个小BUG:关于Dropdownlist无法Datadinding的解决方法。
- C++标准库的一个有趣的小bug
- 关于DropDownList的一个问题(很想说是BUG)
- C++标准库的一个有趣的小bug
- 播客:IE7的一个有趣的BUG
- C++标准库的一个有趣的小bug
- C++标准库的一个有趣的小bug
- 一个有趣的现象(苹果的bug Or 坑?),关于区分真机和模拟器的预编译宏
- DropdownList的一个小bug
- C++标准库的一个有趣的小bug
- 一个关于DropDownList的小bug