当前位置: 代码迷 >> ASP.NET >> 有关object sender的有关问题
  详细解决方案

有关object sender的有关问题

热度:2502   发布时间:2013-02-25 00:00:00.0
有关object sender的问题
在有数个Button组成的按钮组中用((Button).sender).ID == "对应Button的ID号"就可以操作对应的Button事件,但为什么在DropDownList中就不能用类似的方法取出相应的DropDownList中的事件呢?比如有三个DropDownList用((DropDownList).sender).ID == “对应DropDownList的ID号”就会报如下的错误:

异常详细信息: System.InvalidCastException: 指定的转换无效。

源错误: 


行 61: public void drop_SelectedIndexChanged(object sender, System.EventArgs e)
行 62: {
行 63: if(((DropDownList)sender).ID == "dropBackColor")
行 64: {
行 65: Color strBackColor;

请高手不惜赐教,在此先谢过了。

如若这种方法不正确的话请说明错误的原因,还有就是请给予一个其他的解决方法(除了用OnSelectedIndexChanged方法之外)。
 


------解决方案--------------------------------------------------------
呵呵.你强转的时候把前边的名称空间加上看看还会出错吗
System.Web.UI.WebControls.DropDownList

说不定你真自定义了一个DropDownList类型-_-!
------解决方案--------------------------------------------------------
if(((System.Web.UI.WebControls.DropDownList)sender).ID == "dropBackColor") 

如果有重复的类型简写名称,应该总是写上完整的命名空间路径,免得去考虑哪一个空间在前边哪一个在后边。并且你要简写空间路径,可以在“Using”那里设置alias。
  相关解决方案