我将文本框更改为下拉列表时出错

时间:2009-06-09 17:14:51

标签: .net asp.net visual-studio

我的asp.net网站上有以下错误消息,当我替换文本框并将下拉列表命名为与文本框ID相同的下拉列表ID时。

下拉菜单中的值应该被记录下来并放入电子邮件正文中,当我点击提交按钮时,它将作为邮件收到。

以下是我点击提交按钮时收到的错误。

System.InvalidCastException:无法将类型为“System.Web.UI.WebControls.DropDownList”的对象强制转换为“System.Web.UI.WebControls.TextBox”。在C:\ v1.5_production_05June09 \ Default.aspx.vb中的WebApplication1._Default.collectEmailBodyText():第213行

请帮助我!

3 个答案:

答案 0 :(得分:1)

你是如何取代下拉列表的?听起来像你的设计师文件可能与你的.aspx文件不同步。其中一个是将其声明为下拉列表,其中一个已将控件键入为文本框。

检查以确保您的designer.vb文件将控件声明为下拉列表而不是文本框。

答案 1 :(得分:0)

在你背后的代码中,你有一些东西正在做一个FindControl或类似的东西,它正在进行演员表。

您可以在CType的当前文档中执行ctrl + f查找,并且应该找到它。

答案 2 :(得分:0)

听起来好像代码在更改后没有重新编译,或者如果重新编译,则设计器文件没有选择更改。

设计器文件引用了ASPX页面上的每个控件,因此它会有一些像

这样的行

protected global :: System.Web.UI.WebControls.TextBox myInput

当你将它变为下拉列表时,设计师应该改为:

protected global :: System.Web.UI.WebControls.DropDownList myInput

如果没有发生这种情况,您将遇到错误。在运行时,ASPX页面上的控件是实例化的,但如果基础类型不同,那么一旦尝试访问控件,就会出现错误。