OnServerClick event handler not called if using onclick
If you look at the source code generated you will see the following:
onclick="return confirm('Sure?'); __doPostBack('btnSubmit','')"
so what is happening is the _doPostBack is never called. The hacky way to do what you're looking for is the following:
<button type="button" runat="server" id="btnSubmit"
OnServerClick="btnSubmit_Click" onclick="if (confirm('Sure?')) ">
The real correct way would be to use a Web Control:
<asp:Button runat="server"
OnClick="btnSubmit_Click" OnClientClick="return confirm('Sure?')" Text="Submit" />
ASP.net button onserverclick only works when onclick isn't defined
The reason you're seeing this is because when you have both on a button it runs your on click handler followed by the __doPostBack function so the onclick would look something like this
onclick="return checkForm(); __doPostBack('btnNext','')
So as you can see the __doPostBack, which actually sets up which server function to call, is never called. However, since the button is of type submit, the form is still sent back to the server.
OnclientClick and OnClick is not working at the same time?
From this article on web.archive.org :
The trick is to use the OnClientClick and UseSubmitBehavior properties of the button control. There are other methods, involving code on the server side to add attributes, but I think the simplicity of doing it this way is much more attractive:
<asp:Button runat="server" ID="BtnSubmit" OnClientClick="this.disabled = true; this.value = 'Submitting...';" UseSubmitBehavior="false" OnClick="BtnSubmit_Click" Text="Submit Me!" />
OnClientClick allows you to add client side OnClick script. In this case, the JavaScript will disable the button element and change its text value to a progress message. When the postback completes, the newly rendered page will revert the button back its initial state without any additional work.
The one pitfall that comes with disabling a submit button on the client side is that it will cancel the browser’s submit, and thus the postback. Setting the UseSubmitBehavior property to false tells .NET to inject the necessary client script to fire the postback anyway, instead of relying on the browser’s form submission behavior. In this case, the code it injects would be:
__doPostBack('BtnSubmit','')
This is added to the end of our OnClientClick code, giving us this rendered HTML:
<input type="button" name="BtnSubmit" onclick="this.disabled = true; this.value ='Submitting...';__doPostBack('BtnSubmit','')" value="Submit Me!" id="BtnSubmit" />
This gives a nice button disable effect and processing text, while the postback completes.
Issues with onclick/onserverclick with buttons, HtmlButtons, and LinkButtons
I've got it figured out. At least, it is functional.
I was trying to set the function to pass the values I want in the format I wanted, but apparently the when you set up a LinkButton, it prefers the object and Event Args as parameters, and the object is the ListButton itself, so if that ListButton object holds the values you need in its attributes, then when the function is called you parse out the attributes you need. There's likely a better way than to assign the two values I need to CommandName and CommandArgument, but this works. (I had thought of using .Attributes.Add("ROW_ID","1a") and .Attributes.Add("DD_ID","StatusDD") ... but couldn't initially figure out how to retrieve those values from the sender object...to be investigated later, in the meantime, rolling forward with a functional solution.
...
protected void saveRecord(object sender, EventArgs e)
{
LinkButton lb = (LinkButton)sender;
string ROW_ID = (string)lb.CommandName;
string DD_ID = (string)lb.CommandArgument;
Response.Write("<script>alert('Hello');</script>");
...
}
protected void Page_Load(object sender, EventArgs e)
{
...
saveButton.CommandName = "1a";
saveButton.CommandArgument = "StatusDD";
saveButton.Click += new EventHandler(saveRecord);
...
}
}
Related Topics
Remove Microsoft Edge's Phone Number Styling
Inner Div with Square Ratio and Flexbox
Making Youtube.Com/Embed Urls Work on iOS
Making a Div Fit The Initial Screen
Aligning Elements Left, Center and Right in Flexbox
Which Unit I Should Use in CSS When Designing a Web Page
How to Work with Ellipsis in Bootstrap Responsive Table
Using "Label For" on Radio Buttons
Difference Between Phrasing Content and Flow Content
How to Make a Div Take The Full Width of The Page When It Is Inside Another Div That Have 90% Width
How to Display Openweathermap Weather Icon
Why Is My Background Color Not Showing If I Have Display: Inline
Styling Autocomplete Dropdowns in Browsers
Display Simple HTML in a Native Blackberry Application
CSS Right Margin Does Not Work Inside a Div with Overflow Scroll