how to get only one button to fire the form action - asp.net

I have a asp 4.0 application with multiple buttons on it but I want only one to fire the form event.
At this moment it doesn't matter which button I press on the form they all fire the form event.
How do I accomplish it that the event only fires at 1 certain button?

How to disable postback on an asp Button
You can add
UseSubmitBehavior="false" OnClientClick="myfunction(); return false;"
to asp buttons that you do not want to post back. Alternatively you could use standard HTML buttons, rather than asp:Button is you don't want them to submit the form.
http://www.w3schools.com/tags/tag_button.asp

Related

Show asp.net UpdateProgress control on submit only

I have a page with 2 buttons on.
I want to show the updateprogress only when the page is submitted via one of the buttons, but not the other cancel button. I've been struggling for a while to come up with a solution.
Anyone know how I can do this?
Add parameter AssociatedUpdatePanelID for UpdateProgress, and set AsyncPostBackTrigger for UpdatePanel to button you want to make a postback.
If above instructions doesn't help, you can also try to wrap controls you need into asp:Panel control and set DefaultButton to your Submit button ID.

AJAX Add a dynamic form and AJAX Post data

This is what I'm trying to do with AJAX:
[DropDownList]
I have a DropDownList (not inside an UpdatePanel), populated by different Products to "Add" to the database.
[UpdatePanel #1]
Below, I have an Conditional UpdatePanel that listens for "SelectedIndexChanged" on the DropDownList, when that event is triggered it adds TextBoxes to a div "productForm" inside the UpdatePanel. It creates the Form according to the Product to add.
[Button]
Below the UpdatePanel I have a button that "should" submit the form above.
[UpdatePanel #2]
I have an update panel that listens for the event on Button "Click" event. I also have a div in the ContentTemplate that should post out data that was submitted from the "Add Product Form" in the first UpdatePanel.
The thing is, when I submit (and the Controls are still visible in the first UpdatePanel. It can't read the data from the TextBoxes becaus they aren't there. Also, if I try to add all this to the same UpdatePanel, the Controls disappear whenever I click the Submit button.
Any ideas how to make something similar work?
Without the code I can suspect that when you dynamically populate first div on dropdown selected index changed event, since its within update panel, viewstate is never made aware of new controls and on submit can't post them back to server.
I've had some bad experiences with update panel and never use it other than very simple scenarios. Try getting familiar with jQuery ajax. I would do what you want to do using jQuery and web methods.

ASP.NET button click fire jQuery

I have a jQuery Pager control, for each page there is a set of textboxes and a submit button. When this submit button is clicked I want it to fire off some jQuery to update the controls on the front end (i.e. current page, set visibility of controls etc). The button is an asp.net web forms postback button.
Does anyone know any way of doing this?
Merry Christmas!
Inject js from code-behind after your postback success like:
string script = "$(function(){setPage(\"" + yourpagenumber+ "\");});";
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "Pager", script, true);
And in the js you will have a setPage function that does the job of setting page with your jquery pager plugin.
function setPage(pagenumber){
alert(pagenumber);
//do your page setting here
}
Note: you can use Page.ClientScript.RegisterStartupScript if that fits your needs but the idea remains same.
Don't use a submit button, use an input of type button with an onclick event instead.
Use the OnClientClick attribute of the asp:button i.e.
OnClientClick="JQueryFunction();return false;"
for no postback and
OnClientClick="JQueryFunction();return true;"
for a postback. I'm assuming that that JQueryFunction() returns true.

validation conrtol give's problem while clicked on button

i am developing a site in asp.net as front-end
In my Form,
i have a 3 text-box with validation control on it eg: requiredFieldValidator
with joinnow button. and search button with 2 textbox with no validation control on it
when i click on search button it is asking me to fill the three text box for validation and it is not redirected to other page
i need that when i click on search button my form should redirect
You need to set the ValidationGroup properties on your textbox that has the validation and the joinnow button to the same thing. When you click the button it will validate controls in its group, and thus not validate from the search button (which is in a different validation group implicitly)
solution for it is
set the property of the search button as below
CausesValidation="False"

calling __dopPostback from javascript where target control is an ASP.Net custom control

I need to pop up a jquery dialog as confirmation before a submit happens. I don't want the dialog to always pop up, that depends upon the setting of a dropdown.
The submitting control (which I can't change by the way) is a custom control with a save and a cancel button and handlers for the save and cancel buttons.
So when the user has selected a particular item from the drop down I hook up the click event (on the clientside) of the save button (that has been rendered by the custom control) to a js function using jQuery, that calls my showDialog() function and then returns false (to prevent the postback).
I now need, when the user clicks the yes button on the dialog, to call __doPostBack to get the SaveButtons serverside events to fire and to get the serverrside validation to run.
I've got
eval($("#<%= hdnBtnPostback.ClientID %>").val());
in the handler for the Yes button on the dialog.
The hdnPostBack field contains the result of:
Page.ClientScript.GetPostBackEventReference(mySaveCancelCustomControl, String.Empty)
Unsuprisingly this isn't working. The mySaveCancelCustomControl is the custom control mentioned above and it has two buttons that are rendered with two event handlers so the GetPostBackEventReference is doomed to fail.
Any ideas what I should do?
You can make the button a dialog button and put a asp.net button on the page with the ID of HiddenButton and wrap it in a div with a style of display:none; so the button is not visible. (Must not be Visible="false" so the button is rendered)
In the dialog javascript add a button that has the effect of clicking the hidden button
jQuery("#dialog").dialog({
buttons: {
'ButtonText': function() {
__doPostBack('<%# HiddenButton.ClientID %>', '')
jQuery(this).dialog('close');
}
}
});
and add a asp click handler to the hidden button
<div style="display:none;">
<asp:Button ID="HiddenButton" OnClick="HiddenButton_Click" ></Button>
<div>
Click event (HiddenButton_Click) on the serverside will fire when the dialog button is clicked
Hope this helps I use this pattern all the time
ps If ClientID does not work in the __doPostback() call user UniqueID I cant remember which it is.
When you are wiring up your new click on the client side, could you save the current click method into a temporary variable and then call the temporary variable from your Yes button?

Resources