C# ASP.NET母版页默认按钮覆盖

C# ASP.NET母版页默认按钮覆盖,c#,asp.net,imagebutton,defaultbutton,C#,Asp.net,Imagebutton,Defaultbutton,我有一个母版页,其中有一个表单元素,defaultbutton属性设置为服务器端的ImageButton。在我的一个页面上,我想通过在Page_Load事件中设置Forms defaultbutton来“覆盖”masterpage defaultbutton属性 i、 e 在主页上: <form id="form1" runat="server" defaultbutton="btnSearch">....</from> 它的错误包括: “form1”的DefaultB

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

i、 e 在主页上:

<form id="form1" runat="server" defaultbutton="btnSearch">....</from>
它的错误包括:

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

我使用的是实现IButtonControl的图像按钮

有没有关于我可能做错了什么的想法,或者有没有其他解决问题的方法


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

this.Form.DefaultButton = this.ibRecalc.UniqueID;
您可以尝试使用面板的“DefaultButton”属性

将按钮或整个页面或div放入asp:Panel中

//启动面板

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

//控制您的需求

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

把盘子关上


如果在登录模板内移动面板,则无需覆盖母版页按钮:-

<asp:login id="Login2" runat="server" loginbuttontype="Image">
<layouttemplate>
   <asp:`enter code here`panel id="Panel1"   runat="\
     server"defaultbutton="LoginImageButton">
   </asp:Panel>
 </LayoutTemplate>
</asp:Login>

那么它将在没有代码的情况下工作。
您可以根据需要设置loginbuttontype=“Image”或链接或按钮。

ibRecalc是什么类型?它是否实现了指定的接口?@Tahbaza:ibRecalc是一个ASP.NET ImageButton控件,即它确实实现了iButtonControl。有趣的是,您将能够在一个页面内为多个面板提供默认按钮。美好的
<asp:login id="Login2" runat="server" loginbuttontype="Image">
<layouttemplate>
   <asp:`enter code here`panel id="Panel1"   runat="\
     server"defaultbutton="LoginImageButton">
   </asp:Panel>
 </LayoutTemplate>
</asp:Login>