【发布时间】:2015-03-12 17:36:55
【问题描述】:
我已经在网站上工作了几个月,并且快到最后期限了。我知道我的方法有点过时了。特别是考虑到我仍然使用表格。实际上,我已经朝着远离那个方向的方向发展,但是这个项目是由一个 excel 电子表格生成的,并且有 200 多个字段,这似乎是合理的,我正在为其创建这个的人很高兴看到这个游戏。
尽管如此,我遇到了一个问题,我为 asp TableCell 声明了一个 id,并试图为其分配文本。在过去,这已经奏效。从字面上看,我构建的每个其他页面都能够接受此代码。
最初我有一个名为“depthSingleUnit”的文本框。随着新数据的出现,我意识到我可以将深度、高度和宽度信息合并到一个单元格中。而且因为我不希望用户再编辑这些数据,只查看已经可用的信息,所以我放弃了使用文本框的想法,只使用表格单元来显示信息。
tablecell 现在有一个 id “dimensionsSingleUnit”
<asp:TableCell columnspan="1" id="dimensionsSingleUnit"></asp:TableCell>
后面的代码是这样的
dimensionsSingleUnit.Text = PONDS.Tables(0).Rows(0).Item("ProductDimensions")
但我得到了错误
Error 3 'dimensionsSingleUnit' is not declared. It may be inaccessible due to its protection level. C:\Users\aking\My. Documents\Visual Studio 2012\Projects\lampSpecs\lampSpecs\Factories\view.aspx.vb 289 4 lampSpecs
我在这里遗漏了什么吗?我试过改变身份证。我尝试创建一个具有相同名称的新 tableCell。尝试创建一个具有不同名称的新 tableCell。我尝试创建一个新文件,但仍然有同样的问题。我已经尝试重新构建该项目。我从字面上将 id 复制并粘贴到我后面的代码中,但这不起作用。
当我为数据使用多个单元格时的旧 ID 仍然可用,但我添加的所有新 ID 都不会在智能感知中显示并显示错误。
【问题讨论】:
-
要从后面的代码中访问元素,您需要一个 runat="server" 参数
-
认真的吗?我的其他 asp:TableCell 元素在标签中都没有 runat="Server" ,它们仍然可以与代码隐藏一起使用。我有 runat="Server 用于我的 asp:Table 标记。让我尝试一下并回复您。
-
我已将 runat="server" 属性添加到 tablecell,但错误仍然存在。
-
你能试试 dimensionsSingleUnit.InnerHtml = PONDS.Tables(0).Rows(0).Item("ProductDimentiond")... 我没有以这种方式处理表格单元格通常使用网格视图或中继器。表格元素的 runat="server" 可能就足够了......但通常您需要它才能从代码中访问 html 元素。
标签: asp.net vb.net visual-studio-2012