18

I need to set the content page default button. My code is like this:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent" 
defaultbutton="BtnSearch" defaultfocus="TxtSearchValue">

It is working fine, but my master page menu have one image button like chat, I can press the enter key to fire image button click event but it does not fire default button in content page.

How to handle this type of issue?

Florent
  • 12,310
  • 10
  • 49
  • 58
hmk
  • 969
  • 10
  • 38
  • 70

5 Answers5

39

1) You simply have to do:

this.Form.DefaultButton = this.btnId.UniqueID;

OR

2) Using 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;
      }
  }
}

And from the code behind:

ContentPage.Attributes.Add("onkeypress", "javascript:return 
clickButton(event,'" + btnSearch.ClientID + "');");
Vishal Suthar
  • 17,013
  • 3
  • 59
  • 105
  • this.Form.DefaultButton = this.btnId.UniqueID; i wrote this code problem is press enter key it always fire one button , press tab button to focus another button click enter button not working , press space button it working fine , but i have to press enter button – hmk Sep 04 '12 at 12:22
  • you can try the second solution for this..It should work..@hmk – Vishal Suthar Sep 04 '12 at 12:25
  • where i can write ContentPage.Attributes.Add , i mean master page code behind or content page code behind – hmk Sep 04 '12 at 12:31
  • In Page_Load event of content load and also the javascript function..@hmk – Vishal Suthar Sep 04 '12 at 12:34
  • i can write the contentpageid.attributes it have shown error Doesnt Exit in content page load event – hmk Sep 04 '12 at 12:37
  • use `this.Form` instead of `contentpageid` – Vishal Suthar Sep 04 '12 at 12:40
  • it is also same problem , press enter button always fire btnSearch event ,i can change the focus to another button using tab like another button cancel press enter that time also fire btnsearch event but i have cancel button event please give me suggestion suthar.. – hmk Sep 04 '12 at 12:47
11

I solved a similar problem with the following code.

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>
Sedat Kumcu
  • 2,191
  • 1
  • 17
  • 13
8

Wrap all the asp.net controls and buttons inside the Panel and set default button property of panel with the id of a button.

5

Try this code

protected void Page_Load(object sender, EventArgs e)
    {
        this.form1.DefaultFocus = txtSearch.ClientID;
        this.Form.DefaultButton = btnSearch.UniqueID;
    }
Hari Kumar
  • 47
  • 1
  • 3
2
this.Page.Form.DefaultButton = btnSave.ID;
  • 3
    The above should use `btnSave.UniqueID` if there are containers involved (e.g. master pages). – BRass Jun 30 '17 at 15:50