在ASP.NET中自动生成控件ID

时间:2012-05-29 14:33:50

标签: asp.net

我注意到如果我将一个TextBox添加到页面中,而没有为其分配ID属性,则会根据该呈现页面的控件层次结构自动生成此属性。

我正在创建一个在一个页面上多次使用的自定义控件(因此难以对ID进行硬编码)。

ASP.NET是否有一种方法可用于为每个控件生成“唯一”ID?

2 个答案:

答案 0 :(得分:3)

你已经回答了自己的问题 - 不要指定一个,它会为你生成。

感兴趣的可能是this post on Scott Guthrie's blog,它描述了ASP.NET 4中可用的“新”ClientIdMode

  
      
  • AutoID - 在.NET 3.5中恢复输出(自动生成的ID仍然会像ctrl00一样呈现前缀以实现兼容性)
  •   
  • 可预测(默认) - 修剪任何“ctl00”ID字符串,如果列表/容器控件连接子ID(例如:   ID =” ParentControl_ChildControl”)
  •   
  • 静态 - 对开发人员的完整ID命名控制进行操作 - 无论他们设置为控件的ID是什么呈现的   (例如:id =“JustMyId”)
  •   
  • 继承 - 按顺序控制以遵循父容器控件的命名行为模式
  •   

答案 1 :(得分:0)

如果您愿意,可以覆盖ClientIDUniqueID。但使用ClientIDMode会更好。

public override string UniqueID
{
    get
    {
        return "newid";
    }
}

public override string ClientID
{
    get

    {
        return "newid";
    }
}