コンテンツページのデフォルトボタンを設定する必要があります。私のコードは次のようなものです。
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"
defaultbutton="BtnSearch" defaultfocus="TxtSearchValue">
それはうまく機能していますが、私のマスターページメニューにはチャットのような画像ボタンが1つあり、Enterキーを押して画像ボタンクリックイベントを起動できますが、コンテンツページのデフォルトボタンは起動しません。
この種の問題を処理する方法は?
1)次のことを行うだけです。
this.Form.DefaultButton = this.btnId.UniqueID;
[〜#〜] or [〜#〜]
2)JavaScriptの使用:
function clickButton(e, buttonid)
{
var evt = e ? e : window.event;
var bt = document.getElementById(buttonid);
if (bt)
{
if (evt.keyCode == 13)
{
bt.click();
return false;
}
}
}
そして、背後にあるコードから:
ContentPage.Attributes.Add("onkeypress", "javascript:return
clickButton(event,'" + btnSearch.ClientID + "');");
次のコードで同様の問題を解決しました。
Thx: http://www.w3schools.com/aspnet/prop_webcontrol_panel_defaultbutton.asp
<form runat="server">
<asp:Panel runat="server" DefaultButton="bt1">
<asp:TextBox runat="server" />
<asp:Button id="bt1" Text="Default" runat="server" />
</asp:Panel>
</form>
すべてのasp.netコントロールとボタンをパネル内にラップし、パネルのデフォルトボタンプロパティをボタンのIDで設定します。
このコードを試してください
protected void Page_Load(object sender, EventArgs e)
{
this.form1.DefaultFocus = txtSearch.ClientID;
this.Form.DefaultButton = btnSearch.UniqueID;
}
this.Page.Form.DefaultButton = btnSave.ID;