ASP.NET 母版页 DefaultButton 覆盖
我有一个带有表单元素的母版页,并将 defaultbutton 属性设置为服务器端 ImageButton。在我的其中一个页面上,我想通过在 Page_Load 事件中设置 Forms DefaultButton 来“覆盖”母版页默认按钮属性。
IE 在母版页上:
<form id="form1" runat="server" defaultbutton="btnSearch">....</from>
在“覆盖”母版页属性的页面 Page_Load 事件上:
this.Form.DefaultButton = this.ibRecalc.ID;
出现错误:
“form1”的 DefaultButton 必须是 IButtonControl 类型的控件的 ID
我正在使用实现 IButtonControl 的图像按钮 关于
我可能做错了什么或解决问题的不同方法有什么想法吗?
谢谢
I have a master page with a form element and the defaultbutton attribute set to a server-side ImageButton. On one of my pages I want to "override" the masterpage defaultbutton attribute by setting the Forms DefaultButton in the Page_Load event.
i.e
On mater page:
<form id="form1" runat="server" defaultbutton="btnSearch">....</from>
On the page Page_Load event that "override" the master page attribute:
this.Form.DefaultButton = this.ibRecalc.ID;
It errors with :
The DefaultButton of 'form1' must be the ID of a control of type IButtonControl
I am using image buttons which implements IButtonControl
Any ideas of what I might be doing wrong or a different way to approach the problem?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用唯一 ID。由于您可以拥有多个具有相同服务器 id 的服务器控件(即在 GridView 中),因此框架需要唯一的 id 来匹配。
Use UniqueId. Since you can have multiple server controls with the same server id, ie, in a GridView, the framework needs to the unique id to match up to.
您可以尝试使用面板的“DefaultButton”属性...
将按钮或整个页面或 div 放入 asp:Panel
// 启动面板
asp:Panel ID="pnlOpsCallSummay" runat="server" DefaultButton="btnSearch"
。 ......
//根据您的要求进行控制
.........
asp:Button ID="btnSearch" runat="server" Text="Search"
关闭面板
不需要覆盖母版页按钮
You could try using the "DefaultButton" property of a Panel...
Place your button or whole page or div in asp:Panel
// start panel
asp:Panel ID="pnlOpsCallSummay" runat="server" DefaultButton="btnSearch"
............
//Controls of your requirement
..........
asp:Button ID="btnSearch" runat="server" Text="Search"
close the pannel
No need of Overriding the master page button
如果您将面板移至登录模板内:-
那么它将无需代码即可工作。
您可以根据您的要求设置loginbuttontype="Image"或链接或按钮。
If you move the panel inside the login's template:-
Then it will work without code.
You can set loginbuttontype="Image" or Link or button according to your requirement.