AJAX :: How To Retain Focus After Postback (updatepanels)
May 14, 2010
We currently have a page with several user controls (8 of them) and when a control that is contained in an updatepanel initiates a postback the focus is not retained. In some cases, it looks like the focus is sent to the top of the page, and in other cases the focus looks like it is sent to the control with the TabIndex=1.
I have tried 3 different solutions and they all end up with the same result.
The first two were from article:
[URL]
Solution 1: At the end of the server event executed in postback, add:
[Code]....
The article says both of those solutions worked, but for us, neither of them did.[Code]....
ASPX.CS
[Code]....
[Code]....
In all 3 scenarios the control we want to have the focus gets the focus for a split second and then the focus is cleared (set to the top of page, or TabIndex=1).
I'm having a really strange issue with the MaskedEditExtnder. I've attached some markup for one of the textboxes. I'm using a MaskedEditExtender and MaskedEditValidator along with a CalendarExtender so the user has the option to type the date or click on an image and pick the date.
So, if I enter/pick a date then select a control that forces a postback (usually a dropdownlist but not always) when the page is returned the focus goes back to the textbox I just entered the date in. So what about the MaskedEdit, MaskedEditValidator, CalendarExtender would cause the page to return focus to the control being extended? See markup below - am I missing something??
I have an IEnumerable< T> which is declared on the page like this:IEnumerable< Person> person;When the page postsback, the person list is null. How can I retain the values of person list without declaring it as static? Sr. devs in my company say that you should not declare the list as static.
When the finish button is clicked on the third step I would like to Create the user and send the form. I have the logic for this written but the only problem I have is the when the next button is pressed on a wizard, a PostBack occurs and my password field:
I have seen many posts here regarding this, but none with a successful solution.I m using a asp.net fileupload control & not the html one.I have various controls on the page, & on a listbox control, listitem selection, page postbacks.So before it, if i had selected a file for upload & page poastbacks, the the file goes off.Now on postback, I have got the filename in a hidden field, but since the Fileupload control doesnt have any setter methods, not able to get how to set the hidden field value & how to set it...
I am using string builder class to store the dropdown selected values .. I am doing this on the selected index change event .. The problem is the previous value does not retainĀ ..
This is a problem I'm facing in a webapp I'm currently working on. So instead of cluttering the question with unrelated code, I recreated the problem in an isolated, simplified webapp that only demonstrates this issue.
I have a web user control with just this as its content:
And its codebehind has nothing more than the boolean definition of ShowAlertScript. This represents a control I have in the big webapp that has two modes: input mode, and display mode. When in input mode, it has a large javascript block that is only useful then; it does some cool stuff to help the user input the info.The way this control is laid out in the big picture is as follows:
When you click btnSwitch, it simply switches to the second view with the user control. Notice how I have the ShowAlertScript already initialized to true. The potential output is that since I'm "showing the alert script" within the user control, the AlertMe() function will execute when you click the input-button element, because it's written out according to the inline if statement.
If you run this code I gave you so far as is, it will not work. The browser will say it can't see the AlertMe() function; it's undefined as far as it knows. But if you take out the UpdatePanel (or disable the ScriptManager's partial rendering), it will work just fine on a full postback when you click btnSwitch.
I want it to work on a partial postback, because this whole thing is a small piece compared to the rest of the page, and I don't want to do a full postback every time they switch views. Apparently, the ScriptManager doesn't even bother re-rendering the ascx file for possible changes. Either the ScriptManager is not smart enough, or there is an option I'm missing to let it render the <script> so I can invoke its methods on the client side. A potential answer someone might suggest is "why don't you take out the javascript, put it in its own .js file, and have the page reference it so it's available to the control?" That won't really work with me, because the script block does some initialization and modification that pertain to that single control instance, not to all others on the page.
In turn, you might also be concerned that if I have more than one instance of the control, I end up with copies of the same script. Not really; there will only be ONE input mode of this control in a page at any given time, it's just that I have those two modes in two separate views and I let the user switch between them.
I am having an aspnet panel in my aspx file.There is an ultraweb tab placed inside this.also I am having a button outside this panel.Within the tab I have a textbox whose readonly property is
set to "true".Whenever I click the button a javascript function is called .On clicking 'OK' in the popup ,the textbox values are lost.Is there a way to retain these values?
I have the example working but I added a Select Command to the Detail grid for the purpose of selecting a detail record which will redirect to another page. The problem is that when the Select command is clicked the expanded detail grid collapses as if I had clicked the minus. The page and codebehind are:
The graphic designer of a project I'm building a web site for chose jquery.tools [URL] for a tabs tool in the site. Unfortunately it seems that the tool doesn't behave properly on a postback in IE7 or IE8 (it does behave properly in FireFox, Chrome and Safari). Does anyone have experience using the jquery.tools with asp.net? and know how to retain the tab index on a postback? I've tried a lot of things and can't get it to work. The code i'm using now is as follows:
$("ul.tabsScenario").tabs("div.panes > div"); var tabIndex = $('#ctl00_ContentPlaceHolder1_EnInDeToekomst1_HiddenFieldTabIndex').val(); $("ul.tabsScenario").tabs('select', tabIndex);
where the tab index is stored in a hidden field (HiddenFieldTabIndex). The above code works fine in Firefox, Chrome and Safari, but not in IE7 or IE8. I am using a ScriptManager and UpdatePanels, but in an extremely simple website example I can't even get the jquery.tools tabs tool to work. There are some unanswered posts on the Jquery.Tools forum concerning this topic, but yeah, that doesn't help much. I've already determined that the jquery.ui tabs tool works well after a postback but that would cost a lot of refactoring in our project as far as html and css goes. I'd like to avoid that.
I have a dropdown populated with data , based on a true / false condition i change the dropdown item color when dropdown gets loaded initially the item color are proper based on condition. but if i select a particular item & then again click on dropdown the item color disappear show to retain the item color.
I have a problem on my website, when using updatepanels:
Most of the time everything works fine, but a few times a day a user will get an error 500 as response to a partial postback in an updatepanel. The problems are:
1) I can see in my server logs that the request is processed without errors.
2) There is no log entry from the function handling AsyncPostBackErrors, although that is the first thing it does.
3) The function handling AsyncPostBackErrors changes the AsyncPostBackErrorMessage, but the users see a generic text which the function will never output.
So my theory is that the request does not cause an syncPostBackError at all. I can see in the logs, that there have always been an AsyncPostBackError from another request at almost the same time. So I suspect that one request somehow gets tainted with the error of the failing request.
I have a search page with 3 TextBoxes that users can filter a search with.
I have put the focus on the TextBox that contains text. If more than one contains text just focus on last TextBox.
[code]...
After the code runs and a user searches, the focus comes to the beginning of the TextBox, not the end where it would be presumed. How to put insert marked at the end of that TextBox?
On my page which uses nested master pages, I have several user controls which are in their own UpdatePanels.
I've noticed that when I update something which is in UpdatePanel 2, things are shifting slightly in UpdatePanel 1. Someone told me that when UpdatePanels are used, the page is reloading anyway. Is this true?
How do I prevent UpdatePanel 2 affecting UpdatePanel 1?
P.S. All update panels are set to Conditional in their UpdateMode's.
I just want to make sure that I got this right. If I have two update panels, and updatepanel1 has 10 dynamic controls created from an external button that resides on the page by default.. and then i have a second button which also is on the page by default but is an asynctrigger to updatepanel2...
then when the first updatepanel1 is populated with dynamic controls, then when I click button2 to update the second updatepanel2 with some data, the dynamic controls in updatepanel1 wil;l still remain there right? but does it persist by itself on postback? And if so why?
because when I click button2 to update updatepanel2, it does a partial page postback. So when it does a partial page postback, does that mean it does not destroy updatepanel1's dynamic controls?
I am fairly new to ASP.NET and just started using UpdatePanels.Here's what I'm trying to accomplish. I have a button which is wrapped up in the UpdatePanel like so:
[Code]....
The following is the mark-up for the textbox which is supposed trigger an update when its text changes: [Code]....
With the current set-up, the button's text doesn't change when the textbox content changes. At first I suspected that the reason it didn't modify button's text was because I didn't set AutoPostBack to true on the textbox (tried enabling and it didn't work though), but then I why would I want to? I'm not getting any data from the server - I just want to update a button on the client side.
I'd really appreciate if you could point out what I'm doing wrong and maybe also clarify when AutoPostBack is absolutely necessary and what are some of the special cases in which it needs to be used.