使用MasterPage时,设置默认按钮总是报错,不是IButtonControl类型。参考了网上很多文章,暂时解决了这个问题
在 MasterPage的Form中不要设置defaultbutton,在子页面的Page_Load里添加
string
script
=
"
javascript:return WebForm_FireDefaultButton(event, '
"
+
Button1.ClientID
+
"
')
"
;
this .Page.Form.Attributes[ " onkeypress " ] = script;
this .Page.Form.Attributes[ " onkeypress " ] = script;
然后在MasterPage页面上添加javascript
<
script type
=
"
text/javascript
"
>
function WebForm_FireDefaultButton(event, target) {
if (event.keyCode == 13 && ! (event.srcElement && (event.srcElement.tagName.toLowerCase() == " textarea " ))) {
var defaultButton = document.getElementById(target);
if (defaultButton && typeof (defaultButton.click) != " undefined " ) {
defaultButton.click();
event.cancelBubble = true ;
if (event.stopPropagation) event.stopPropagation();
return false ;
}
}
return true ;
}
</ script >
function WebForm_FireDefaultButton(event, target) {
if (event.keyCode == 13 && ! (event.srcElement && (event.srcElement.tagName.toLowerCase() == " textarea " ))) {
var defaultButton = document.getElementById(target);
if (defaultButton && typeof (defaultButton.click) != " undefined " ) {
defaultButton.click();
event.cancelBubble = true ;
if (event.stopPropagation) event.stopPropagation();
return false ;
}
}
return true ;
}
</ script >
参考文章:http://blog.csdn.net/aws2003/archive/2007/09/21/1794525.aspx