19

フォーム要素を含むマスター ページと、サーバー側の ImageButton に設定された defaultbutton 属性があります。私のページの 1 つで、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 を実装する画像ボタンを使用しています

私が間違っているかもしれないこと、または問題にアプローチする別の方法についてのアイデアはありますか?

ありがとう

4

3 に答える 3

46

UniqueId を使用します。同じサーバー ID (つまり、GridView) を持つ複数のサーバー コントロールを使用できるため、フレームワークは一致する一意の ID を必要とします。

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

パネルの「DefaultButton」プロパティを使用してみることができます...

ボタンまたはページ全体または div を asp:Panel に配置します

// 開始パネル

asp:Panel ID="pnlOpsCallSummay" runat="サーバー" DefaultButton="btnSearch"

…………

//要件の制御

..........

asp:Button ID="btnSearch" runat="サーバー" Text="検索"

パネルを閉める

マスターページボタンをオーバーライドする必要はありません

于 2014-12-11T07:15:16.050 に答える
0

If you move the panel inside the login's template:-

<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>

Then it will work without code. You can set loginbuttontype="Image" or Link or button according to your requirement.

于 2016-09-02T07:16:49.417 に答える