【问题标题】:Underscore plus numeric sequence value being appended to end of element id下划线加数字序列值被附加到元素 id 的末尾
【发布时间】:2014-11-14 20:49:15
【问题描述】:

有人知道为什么会这样吗?

我有一个 aspx 页面,其中包含由转发器填充的数据。由于某种原因,数字序列值被附加到 .net 创建的所有元素 ID。元素 ID 示例。

id="SearchResults_rep_ChkBoxSelectRecord_ID_100001_0"
id="SearchResults_rep_ChkBoxSelectRecord_ID_100002_1"
id="SearchResults_rep_ChkBoxSelectRecord_ID_100003_2"
id="SearchResults_rep_ChkBoxSelectRecord_ID_100004_3"

但是,元素名称没有附加额外的值:

name="SearchResults_rep_ChkBoxSelectRecord_ID_100001"
name="SearchResults_rep_ChkBoxSelectRecord_ID_100002"
name="SearchResults_rep_ChkBoxSelectRecord_ID_100003"
name="SearchResults_rep_ChkBoxSelectRecord_ID_100004"

ID 是在代码隐藏中从一个整数动态分配的。 ...并且在本地运行时不会发生这种情况,而是在我们的登台服务器上发生。如果我不想使用 .net id 自动命名约定,我知道 ClientIDMode,但如果我现在更改该属性,则需要进行太多代码更改。关于为什么会发生这种情况,我遇到了困难。有什么想法吗?

如果相关,请提供更多信息。登台服务器正在运行带有 IIS 6 的 Windows Server 2003

【问题讨论】:

  • 您的第二个示例是否应该使用 name=".." 而不是 id="..."?还是我误会了什么?
  • @KristianFrost 是的,你是对的,我修好了 :)
  • 太棒了 :) 这些复选框是 CheckBoxList 的一部分吗?
  • @KristianFrost 不,它们不是,它们被填充在由代码隐藏中的中继器创建的表中。

标签: html asp.net .net repeater


【解决方案1】:

我最终找到了解决这个问题的方法,它与将代码从 .net 2.0 升级到 4.0 以及 ClientIDMode 的默认值有关,对于 .net 4.0,它是 Predictable

<pages clientIDMode="AutoID"> 添加到web.config 中的System.Web 节点解决了该问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-08
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多