I have a form with two parts. The top part allows the user to select items they want to purchase. I installed the Ajax toolkit from Microsoft, then I put a update panel on the top part. It works fine. When a user clicks the "update" button, it will update the final price of all the items they have selected.
Here's my problem. The lower part of the form is where they can enter their personal information. When the user clicks the "update" button on the top part, the lower parts validate is triggered. My update panel is only on the top part. Why is it acting like the entire form is submitted when the user clicks the button located inside of my update panel? Shouldn't ajax only send information in the update panel to the server?
Thanks for any help.
Because whenever you click on update button, the page will do a postback (in case of update Panel also). So in case of postback, everything inside <form id="form1" runat="server"> will be posted to server.
You can use ValidationGroup and CausesValidation property for specific validations.
Related
I'm using telerik Grid which has a command button that adds new row/record or another command button that edits selected row/record.
Each grid is inside a twitter bootstrap tab content (Yes, I didn't use telerik tab). What is happening is that when one of buttons that I mentioned above clicked, I expect the tab that contains that button be active at page load.
So is there anyway to get that button so I can use it to activate the proper tab? (ID of that button is enough for me, I will do the rest with jQuery)
Every control that posts back, in an ASP.NET web forms world, sets the __EVENTTARGET and __EVENTARGUMENT (if there is an argument) form values. The __EVENTTARGET form variable has the client ID of the button, so that might be the optimal way. If it's within the grid, I'm not sure, but the __EVENTTARGET may either be the button or grid ID.
Ok, so I've researched this to the end of the earth and can't seem to find a solution that works.
I have a C# application, which is basically a web form made up of radio button lists and text boxes in an update panel. The form has multiple 'sections', each of which the user submits when completed. Each control performs a postback. This is because if the user modifies a section after completing it, the 'section saved' label needs to disappear.
This all works well, except the postbacks lose the tab order of the controls. I have found code examples that save the last control that had focus, which works well for the radio button lists, but because the text boxes post back when a user tabs to the next control (not modifies the text), it doesn't select the next control. The user has to hit tab again and it jumps to the third text box, not the second because technically, the second text box is what had focus after the initial postback. I hope this makes sense.
Any ideas? I can post code if required.
I should probably also add that this page is within a frame of our community portal.
Siva here.
I have used Default aspx page with bunch of link buttons in sidebar. Using asp panel i loaded the user control in panel. Here every thing is perfect. I can't highlight the active link button without post back.
ASP has a control called the Update panel (http://msdn.microsoft.com/en-us/library/bb386454(v=vs.100).aspx)
wich basicly allows you to call events while not using the postback trigger.
i hope this helps.
I have a page with an update panel, this page also has an ajax model popup. When I click some buttons I make some changes in code behind and then show the popup. For some reason when I click the button in the update panel no changes occur in the popup.
Debugging through the click I see that the changes are applied but the popup is not refreshed.
Any suggestions would be greatly appreciated.
You need to register a post back trigger so that the popup is completely refreshed. This is of course if you want the page to post back, otherwise if you want those changes to be reflected in the popup you will need to use javascript.
example:
asp:PostBackTrigger ControlID="UploadTemplateImageButton"
you have to set the panel visibility to false on page load.
ex: panel1.Visible=false;
I have a Ajax modal popup that displays a set of options for the user. On submit button click event on the ajax modal popup, i need to pass the user selected data back to a text box on the user control (which has the modal pop up) on the calling page.
Structure/flow is as follows. There is a page and two user controls. One is a search control that has another user control that contains the user options. The master page has the search user control. When the user chooses an option in a dropdownlist in the search control, it does a mpe.Show of the user control with options. User makes his selections and hit submit button. In the button click event in the popup, i delegate an event back to the search user control which tries to set the value in one of its text boxes. Everything is going fine until this step and i can see the value but the text box never changes. It seems like the user control is already rendered and the changes are ignored. Any idea how I can get around this?
In short, how to get back the data to a control from an Ajax modal popup.
Use jquery - when the user clicks a button on the modal - use jquery to set the value field to be the data that the user has selected.
e.g.
$('#modalButton').click(function() {
var userData = $('#tbUserData').val();
$('#textBoxElsewhere').val(userData);
});
for anybody's future reference, i did a work around for this. What was happening is that, on the final button click postback, the page/parent user control load events run first and then the button click event.. so the changes that were being made in the button click event did not make it back to the parent user control on the page.. i had to add a middle step to display the user selections for approval and force the user to hit a final confirmation hit. On that post back, the changes were already available for the parent user control, and not have to wait for the button click event to trigger to grab the data. I'm sure there is a better way to do this but this is what I could come up with.