ASP.NET 4.0 ListView等容器控件中获取ClientID值与HTML中自动生成ID字符串不一样问题。 ASP.NET 4.0 中 ClientIDMode的属性 可以设置获取不同ID格式的值。

项目中遇到的问题:

1、ListView1 ItemDataBound事件中,获取ClientID结果与自动生成ID一致。

2、ItemDataBound事件中不执行InsertItemTemplate段。(获取Insert中控件ID无法获取)

所以还得通过在ItemCreated时获取ClientID。结果后台中获取值与最终HTML自动生成ID字符串有差异。

解决方法:

在父容器控件ListView1的ClientIDMode值设为Static (ClientIDMode="Static")

其模板中控件TextBox的ClientIDMode值设为Predictable (ClientIDMode="Predictable ")

结果一致“ctrl0_LogoURLTextBox_0” 自动生成ID也不带父容器ID。