19

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

即在母版页上:

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

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

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

它错误:

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

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

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

谢谢

4

3 回答 3

46

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

this.Form.DefaultButton = this.ibRecalc.UniqueID;
于 2010-09-01T03:26:27.497 回答
2

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

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

// 开始面板

asp:面板 ID="pnlOpsCallSummay" runat="server" DefaultButton="btnSearch"

…………

//控制您的需求

…………

asp:按钮 ID="btnSearch" runat="server" Text="Search"

关闭面板

无需覆盖母版页按钮

于 2014-12-11T07:15:16.050 回答
0

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

<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" 或 Link 或 button。

于 2016-09-02T07:16:49.417 回答