ClientIDRowSuffix与ClientIDMode

时间:2011-08-16 07:56:23

标签: .net

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

一个。用ListView控件替换GridView控件。 B.在Web.config文件中将ClientIDMode属性设置为Predictable。 C.将每个唯一GridView控件的ClientIDRowSuffix属性设置为其他值。 D.将@ OutputCache指令VaryByControl属性设置为GridView控件的ID

3 个答案:

答案 0 :(得分:1)

我认为您问题的正确答案是 B 。 原因是通过更改webconfig文件并将clientIdmode设置为可预测,所有网格视图将在所有页面上具有相同的命名约定。

答案 1 :(得分:1)

使用Predictable来表示一切并不是那么好。你可以在这里找到关于ClientIDMode整个主题的好文章:

http://www.west-wind.com/weblog/posts/2009/Nov/07/ClientIDMode-in-ASPNET-40

简而言之:

  • 将ClientIDMode =“Static”添加到每个页面(或在web.config的设置中)
  • 向数据绑定模板中的每个列表控件子项显式添加ClientIDMode =“Predictable”
  • 明确覆盖可预测命名冲突的问题,以及极端边缘情况的AutoId
  • 对于控制开发,如果可能,请保留默认行为(即从父级继承)
  • 仅在必要时进行覆盖,最好是在单个子控件上进行覆盖

答案 2 :(得分:1)

正确答案 C 。设置为可预测将使ID可预测但不够精确,无法在JavaScript中使用。使用 ClientIDRowSuffix 获取有界列表的确切ID:Adding Client ID’s to Each Row Item下的Cleaner HTML Markup with ASP.NET 4 Web Forms - Client IDs