【问题标题】:How to convert <tr id> to <div id>?如何将 <tr id> 转换为 <div id>?
【发布时间】:2014-10-21 15:28:39
【问题描述】:

您好,我在 asp.net 页面中有以下代码

<tr id="XYZ" runat = "server">
  <td>body</td>
</tr>

我试图将其转换为 div span 格式

<div class="ui-class" id="XYZ">
<span>body</span>
</div>

在设计器文件中,我将 Div id 的数据类型从 Html Generic 更改为如下

System.Web.UI.HtmlControls.HtmlTableRow XYZ

当我试图从我的 aspx.cs 文件中访问这个 id(XYZ) 时,它给了我 null。 有人可以帮我吗?

没有必要的编辑指出我试过了

<div class="ui-class" id="XYZ" runat="server">
<span>body</span>
</div>

还将数据类型改回

System.Web.UI.HtmlControls.HtmlGenericControl

但还是一样。

【问题讨论】:

  • ctrl + H?? 怎么样?
  • ctrl+H有什么作用?
  • ctrl+H 只是查找和替换,但这没有用,因为您已经在 .designer 文件中修改了控件的类。注意你的TRrunat="server" 但你的div 没有.. 请参阅下面的完整说明。

标签: html asp.net


【解决方案1】:

您需要添加runat="server" 属性使其成为服务器控件,以便可以在代码隐藏中使用。

尝试将runat="server" 添加到您的div,如下所示:

<div class="ui-class" id="XYZ" runat="server">
<span>body</span>
</div>

如果没有runat="server" 属性,ASP.NET 不会将您的控件视为服务器控件(不会将它们添加到控件树、序列化到视图状态等),并且不允许您从代码隐藏(为了简单起见,我忽略了一些例外)。

此外,您的代码实际上并未显示HtmlGenericControl 控件。你会需要这个:

protected System.Web.UI.HtmlControls.HtmlGenericControl XYZ;

protected 访问修饰符(或可能是 public)很重要,因为 ASPX 被编译为一个类,该类是它继承自的代码隐藏的子类。代码隐藏通常声明控件,ASPX 实例化它们(基本上它会自动为您执行XYZ = new System.Web.UI.HtmlControls.HtmlGenericControl())。 XYZ 的声明和实例化使它在后面的代码中访问时不为空。

如果您仍然有问题,您可能需要验证您的 ASPX 没有将 XYZ 用作动态控件或在数据绑定控件内部,例如 Repeater,因为它们的处理方式不同(在 @例如 987654334@ 处理程序)。

【讨论】:

  • 我试过了。当我将鼠标悬停在 id 中的标签上时,设计器文件会给出以下语句。 “它没有初始化。默认值为空”
猜你喜欢
  • 2020-05-05
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 2020-03-06
  • 2013-08-03
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多