“form1”的 DefaultButton 必须是 IButtonControl 类型的控件的 ID

来源:互联网 发布:澳洲 月光宝盒 知乎 编辑:程序博客网 时间:2024/05/29 07:55
 “/Web”应用程序中的服务器错误。 “form1”的 DefaultButton 必须是 IButtonControl 类型的控件的 ID。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.InvalidOperationException: “form1”的 DefaultButton 必须是 IButtonControl 类型的控件的 ID。
 
“form1”的 DefaultButton 必须是 IButtonControl 类型的控件的 ID - 郁郁 - 郁郁的博客        this.form1.DefaultButton = btn.UniqueID;
请用".UniqueID“,如果用.ID或是.ClientID,都会出现:
“form1”的 DefaultButton 必须是 IButtonControl 类型的控件的 ID
错误提示。
 
在ASP.NET 的服务器端控件中有三种关于ID 的属性,即 ID, ClientID 和 UniqueID。ID 表示控件的服务器端编程的标识符,我们写服务器端的代码,就要用到这个 ID, 通过这个 ID 可以在服务器端对服务器端控件的属性、方法和时间进行编程访问。ClientID 表示由服务器端生成的客户端控件的ID,  经常用于在客户端脚本中访问服务器控件所呈现的 HTML 元素。一般情况下与服务器端的 ID 相同,有时,不能为控件生成唯一的名称,例如,如果 Repeater 空间在它的某个模板中包含一个 Label 控件,则将在客户端生成多个该 Lable 的 HTML 元素, 为防止命名冲突,ASP.NET 为各个服务器控件生成一个唯一的 ClientID ,ClientID 通过将子控件的父控件的 UniqueID 值与控件的 ID 值连接生成,各个部分之间以下划线 _ 连接。UniqueID 用于获取服务器控件的唯一的、以分层方式表示的标识符。当将控件放置到重复控件(Repeater、DataList和DataGrid)中时,将可能生成多个服务器端的控件,这就需要区分服务器端的各个控件,以使它们的 ID 属性不冲突。UniqueID 通过将子控件的父控件的 UniqueID 值与控件的 ID 值连接生成,各个部分之间以 IdSeparator 属性指定的字符连接。默认情况下, IdSeparator 属性为冒号字符 (:)。
 
ID: btn  用于服务器
ClientID: control_pan_btn 用于客户端 html
UniqueID: control$pan$btn 服务器唯一标识
0 0