ASP.NET主页DefaultButton覆盖

时间:2010-09-01 03:19:58

标签: c# asp.net imagebutton defaultbutton

我有一个带有表单元素的母版页,默认按钮属性设置为服务器端ImageButton。在我的一个页面上,我想通过在Page_Load事件中设置Forms DefaultButton来“覆盖”masterpage defaultbutton属性。

即 在主页上:

<form id="form1" runat="server" defaultbutton="btnSearch">....</from>

在页面Page_Load事件中“覆盖”母版页属性:

this.Form.DefaultButton = this.ibRecalc.ID;

错误:

  

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

我正在使用实现IButtonControl的图像按钮

任何关于我可能做错了什么的想法或者解决问题的不同方法?

由于

3 个答案:

答案 0 :(得分:44)

使用UniqueId。由于您可以拥有多个具有相同服务器ID的服务器控件,即在GridView中,框架需要唯一的id才能匹配。

this.Form.DefaultButton = this.ibRecalc.UniqueID;

答案 1 :(得分:1)

您可以尝试使用Panel的“DefaultButton”属性...

将您的按钮或整个页面或div放在asp:Panel

//开始面板

asp:Panel ID =“pnlOpsCallSummay”runat =“server”DefaultButton =“btnSearch”

............

//您需求的控制

..........

asp:Button ID =“btnSearch”runat =“server”Text =“Search”

关闭面板

无需覆盖母版页按钮

答案 2 :(得分:0)

如果您在登录模板中移动面板: -

 <!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/xregexp/3.1.1/xregexp-all.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script type="text/javascript">
	var em = XRegExp('^([\\p{L}+|\\p{N}*][@][\\p{L}+][.][\\p{L}+])$'); // Please help me to correct it
	jQuery(function(){
		jQuery('input').blur(function(){
			console.log(jQuery(this).val());
			console.log(em.test(jQuery('#t1').val()));
			
		});
	});
	
</script>
	<title></title>
</head>
<body>
Enter Name: <input type="text" name="t1" id="t1" class="kcd">
</body>
</html>

然后它将无法使用代码。    你可以设置loginbuttontype =&#34; Image&#34;或根据您的要求链接或按钮。