【问题标题】:How does ClientIDMode work?ClientIDMode 是如何工作的?
【发布时间】:2011-12-28 14:05:32
【问题描述】:

我正准备参加 .NET 考试,但遇到了这个问题。我一直在为此烦恼,但我无法弄清楚:s 我尝试了所有这些但没有想出一个明确的答案......

您正在实现一个在多个页面中使用数据绑定 GridView 控件的 ASP.NET 应用程序。您添加 JavaScript 代码以定期更新这些 GridView 控件中特定类型的数据项。您需要确保 JavaScript 代码可以定位为这些 GridView 控件中的每一行创建的 HTML 元素,而无需在控件从一个页面移动到另一个页面时进行更改。你应该怎么做?

A.将 GridView 控件替换为 ListView 控件。

B.在 web.config 文件中将 ClientIDMode 属性设置为 Predictable。

C.将每个唯一 GridView 控件的 ClientIDRowSuffix 属性设置为不同的值。

D.将@OutputCache 指令的VaryByControl 属性设置为GridView 控件的ID。"

这是我想出的:

A.由于 GridView 和 ListView 的结构相似并且 因为它们生成相同类型的 ID,所以我划掉了这个。

B.我对此进行了测试,但它似乎不会影响 ID:s 我想我 将不得不应用更多的设置而不只是这个来获得一些 效果。

C.这让我想知道这个问题到底在说什么,这个 使所有行唯一。但这是应该发生的事情吗,因为 您不应该更改代码吗?

D.这是为了缓存,所以与问题无关。

有人可以帮我解决这个问题吗?有什么想法吗?

【问题讨论】:

    标签: asp.net .net clientid


    【解决方案1】:

    这个问题告诉我们可以在多个页面中使用数据绑定的 GridView 控件,而且,如果将一个 gridview 控件从一个页面删除到另一个页面,那么它应该可以正常工作,而不会与已经存在的 gridview 控件发生任何冲突。

    所以我们需要设置 GridView.ClientIDRowSuffix 属性。所以答案是C。

    检查此MSDN 链接。

    【讨论】:

    • @Aries51 - 是的,答案是 C,行将是唯一的,因为 ClientIDRowSuffix 属性将在服务器端 ID 之前添加一个 ID 后缀,如果您在同一页面中放置两个 gridview 控件,则不会有冲突。
    猜你喜欢
    • 2011-11-06
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 2016-11-13
    • 2017-10-11
    • 2021-10-13
    相关资源
    最近更新 更多