【发布时间】: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 集合,或者您只是在假设? -
你知道怎么调试东西吗?如果没有,请立即学习如何调试!您应该能够在该行停止代码并查看值。教你怎么做对评论来说有点大,但我敢肯定那里有很多教程。
-
学习如何调试是作为程序员可以学到的最有价值的技能。祝你好运!