ASP.NET主页DefaultButton覆盖

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

即在主页上:

....

在“覆盖”主页面属性的页面Page_Load事件上:

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

它错误:

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

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

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

谢谢

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

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

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

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

//开始面板

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

…………

//控制您的要求

……….

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

关闭面板

无需覆盖母版页按钮

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

       

然后它将无需代码即可工作。 您可以根据需要设置loginbuttontype =“Image”或链接或按钮。