【问题标题】:Error when i change the textbox to dropdown将文本框更改为下拉菜单时出错
【发布时间】:2009-06-09 17:14:51
【问题描述】:

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

下拉列表中的值应该被放入电子邮件正文中,当我点击提交按钮时将作为邮件接收。

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

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

请帮帮我!

【问题讨论】:

    标签: .net asp.net visual-studio


    【解决方案1】:

    您是如何替换下拉菜单的?在我看来,您的设计器文件可能与您的 .aspx 文件不同步。其中一个将其声明为下拉列表,其中一个将控件键入为文本框。

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

    【讨论】:

      【解决方案2】:

      听起来,一旦进行更改,代码就没有重新编译,或者如果重新编译,则设计器文件没有拾取更改。

      设计器文件引用了放置在 ASPX 页面上的每个控件,所以它会有一些类似的行

      受保护的全局::System.Web.UI.WebControls.TextBox myInput

      当您将其更改为下拉列表时,设计器应更改为:

      受保护的全局::System.Web.UI.WebControls.DropDownList myInput

      如果没有发生这种情况,您将遇到错误。在运行时,ASPX 页面上的控件会被实例化,但如果底层类型不同,那么在您尝试访问该控件时会立即收到错误消息。

      【讨论】:

      • 是的,有两行用于下拉菜单,另一行用于文本框我删除了文本框的行现在我收到以下错误 System.InvalidCastException: Unable to cast object of type 'System.Web.UI. WebControls.DropDownList' 以键入 'System.Web.UI.WebControls.TextBox'。在 C:\v1.5_production_05June09\Default.aspx.vb:line 213 中的 WebApplication1._Default.collectEmailBodyText() 处
      【解决方案3】:

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

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

      【讨论】:

      • 这是我在查找 CType Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) 时看到的唯一一行
      猜你喜欢
      • 1970-01-01
      • 2014-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 2020-10-21
      • 2019-09-22
      相关资源
      最近更新 更多