【问题标题】:Type conversion error in VB when accessing a HTML table访问 HTML 表时 VB 中的类型转换错误
【发布时间】:2017-03-29 18:29:11
【问题描述】:

我有一个 HTML 表格,允许在其中使用一些 JavaScript 动态添加/删除行(在单元格中包含文本输入)。我没有使用 ASP.NET TextBox 控件,只是使用传统的 HTML,因为我不认为可以在没有回发的情况下添加/删除包含 ASP.NET 控件的行。

当用户单击 ASP:Button 时,我正在使用 VB 循环遍历服务器代码中的表行,并最终使用 LINQ 写入数据库。我在文件中有“Imports System.Web.UI.HtmlControls”。

我遇到问题的代码是:

Dim name As HtmlInputText

name = row.Cells(0).Controls(0)

错误是:“无法将 'System.Web.UI.LiteralControl' 类型的对象转换为 'System.Web.UI.HtmlControls.HtmlInputText'。”在上面的第 2 行。

每个单元格中只有一个输入控件,所以我假设我可以使用“Controls(0)”来访问它。我已经阅读了使用“FindControl”的解决方案,但我认为这不适用于标准 HTML“输入”,而且,由于行是动态添加/删除的,几乎不可能知道要搜索的“ID” .

有什么想法吗?干杯。

【问题讨论】:

  • 我会假设您的单元格有一些文字文本以及输入框 - 即使这只是空格。调试。检查 row.Cells(0).Controls 实际包含的内容,然后根据需要进行编码。
  • 该单元格除了输入之外不包含任何东西,即:
  • 它显然至少在第一个位置有一个LiteralControl,所以当你说它除了输入之外不包含任何内容时,我不确定我是否相信你。您是否实际调试并查看了 Controls 集合,或者您只是在假设?
  • 你知道怎么调试东西吗?如果没有,请立即学习如何调试!您应该能够在该行停止代码并查看值。教你怎么做对评论来说有点大,但我敢肯定那里有很多教程。
  • 学习如何调试是作为程序员可以学到的最有价值的技能。祝你好运!

标签: html asp.net vb.net


【解决方案1】:

找出问题所在。只需将 runat="server" 添加到输入标签。谢谢大家的回复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多