AJAX :: SliderExtender Behavior Can Only Be Capture After A Postback?
Dec 3, 2010
I'm using SliderExtender in content of a Master Page.
It has a JavaScript function that is called in both $(document).ready and Sys.WebForms.PageRequestManager.getInstance() .add_endRequest() .
When I initial the page, the function is not active, it says " $find('BehaviorID') " is null, while other JavaScript function (without behaviourID) works smoothly.
But when I do a postback on the page. The slider function turns to available.
It seems the page didn't generate properly, miss a slider tag with class = "...BehaviorID..."
Right now, the SliderExtender value (when dragged around) will cause a normal postback on TextChanged.
My situation is, the server side code would also like to dynamically change this slider value. When it does this, it changes the sliderextender value by javascript. However, teh problem is, when this happens, another postback occurs raising the OnTextChanged event when a postback occurs.So how can I change the sliderextender value from the server side withotu raising a postback?
I've tried to set autopostback=false, then set teh value, then setting it back to true but this wasn't workign in javascript.
I need a Slider that will only postback when the slider has been moved. Can this be achieved with SliderExtender?
I have a TextBox with autopostback=true, within an updatepanel within a usercontrol. The TextBox is extended by SliderExtender (default settings).
The TextBox's TextChanged event fires perfectly when the slider is moved (MouseUp - standard extender setting). The aspx page is partially posted back, and all is well.
However, if another usercontrol on the same aspx page causes a partial postback, the SliderExtender causes the TextChanged event to be raised - for no aparent reason. This is causing problems.
Is it possible to prevent postback unless the slider has actually been moved?!
I have a sliderextender inside a listview and there is a button that save the sliderextender values inside the listview. My problem is when i am trying to get the value of each slider i do not get the value set. My boundcontrol that i declare on the sliderextender changes but when i try to get its value its "" but there is a value displayed.
I've tried variations on CSS and layout (such as tables) but haven't been able to solve this problem. I've been able to recreate this with my simple example below on both Firefox 3.6 and IE7. When I load this page, the textbox blinks in for a second and when the slider appears the textbox will disappear. In the case of this example, the slider appears in the place where the textbox tried to load. In other examples I've created the textbox and slider load in different places but the textbox still disappears when the slider appears.
[Code]....
I realize this is an extremely simple example but I'm trying to narrow down the possible places for things to go wrong.
So I want to build a page with 3 sliders that are linked and limited to 100 total. So if the user slides the 1st slider to 100 then the other 2 wont move. Or they could do 50 / 25 / 25 etc etc...
So I need to limit each slider maximum based on (100 - the other 2 selected values) and I'd like to do it without a postback.
I have an issue that seems to only happen on my production server. I show or hide table rows whenever the buttons are clicked. However, when I do a postback on the checkbox, all of the rows become visible and the textbox stays empty. It works correctly on my test server and local workstation, just not in production.
Here is the markup...
[Code]....
Here is the code behind...
[Code]....
Here are the unexpected results whenever I check the chkShow2 checkbox... I am guessing this is a configuration issue on the server.
I am trying to develop two step size buttons + and - so that when you click either one, the AJAX SliderExtender will magically move itself by one. I have tried implementing the following functions:
here's what happens, I see that the BoundControl textbox works and it gets updated to 5. However, the slider still does not update to its new position. When the slider moves, a postback will occur. The Slider1 is the textbox that is the targetID to SliderExtender1 . The boundcontrolID is Slider1_BoundControl (textbox)
I'm using a Ajax SliderExtender in a UpdatePanel. I set a BehaviorID and call $find('behavorID').add_valueChanged function in the $document.Ready. Everything is fine but when I press F5 and refresh the page, I lose the slider in a 1/3 (wtf) chance. If I set var slider = $find('behavorID'), it recognises slider is null.
I am using a bunch of SliderExtenders to morph the ASP Textbox into a Slider control. This has worked great. However, I noticed that 1/20 times, occasionally, the sliderextender fails to morph the textbox. So the textbox actually appears during initial page_load. However, you can still drag the slider around because it is also rendered beneath the textbox.
A subsequent page refresh fixes this problem until some other time.
Second thing, this also frequently comes out more when switching between a javascript tab and an updatepanel.
when I try to change the Behavior component's id in $create() I receive an exception when running the web page with the component control on it:
Microsoft JScript runtime error: Sys.InvalidOperationException: The id property can't be set on this object.
how then to change the Behavior's id? I know it is impossible to change the id of a Sys.UI.Control component, but the web control I created has a Behavior client side API.
I've got a user control that is displayed via a PopupControlExtender. The user control is a GridView that dynamically adds columns to the control to display the results of a SELECT statement. The PopupControlExtender correctly displays the control and the control displays the neccessary columns. However, when the control is first displayed, the column widths are ignored, despite that they are explicity set. If the control is displayed and then hidden, the column widths are acknowledged the next time the control is displayed.
I basically have a web app where the user enters some form info in Page1. This info is submitted and a SQL database is updated. The user is directed to Page2.
Page 2 contains a summary of info submitted in Page1, a PRINT button, and two UpdatePanels. Each UpdatePanel contains a ListView where the user can add, edit and remove items. Once the user is happy with the page, they click PRINT. This takes them to a printer-friendly page with NO on-page navigation.
Once printed using the browser print button, the user clicks the browser back button. In this case it is always IE8 running the pages. When you return to Page2, the content of the ListViews in the UpdatePanels looks like the first step when Page2 was entered from Page1. All work done on Page2 from that intial point is not there. Click the browser refresh button and the entire page will load.
Why does this happen? When the user clicks the browser back button in the printer friendly page, I need the screen to show Page2 with all the info from just before the PRINT button was pressed.
I can provide code, but initially thought it would confuse/clutter the post.
I have two Main Tabs and in a TabContainer.I have 5 Second Level Tab Panels under Main Tabs.Two MainTabs work as mode: find and work:The default is Find Mode with First Tab visible.the user selects some field and the result is displayed in the same Panel in a GridView.When the user views the result it is displayed in the second TabPanel of the Second Level Tab which is then set to visible while other 3 tabs are still invisible.I want to go back to the Find mode and have it in the orignal state.Same thing with the Main Tabs: When I am in work mode: the other 3 tabs are visible and the previous two Tabs are invisible.When I want to go back to Find Mode. I want to retain the what the user had selected in the 2nd level Tabs before moving to the Work panel.
I have a 'MaskedEditExtender' textbox for phone number on my application. On IE, when someone clicks somewhere in the middle of the textbox using the mouse, on the first click the cursor is actually placed at the first digit of the number. On the next click positions it is at the mouse position. However, on other browsers like Chrome, Firefox, etc.. on the first click of the mouse, the cursor position is at the mouse position (not at the first digit of the number). There does not seem to be any special code written to specify this behaviour. Is there a default behaviour for 'MaskedEditExtender' on IE which results in this?
I have a simple form with a list of linkbuttons, each fires the same onclick event which sets an indicator image. I have a dummy button with style="display:none" which I have set as the TargetControlID of the modal.
onClick event from the imagebutton, the modal is shown via modal.Show(). The cancel button inside the modalpopup fires an event which turns off the indicator image and hides the modal via modal.Hide().
The events fire perfectly, it's very simple! Although after doing some testing I noticed the modalpopup is not presented after the 6-10th cycle of clicking the open event, then clicking cancel. The grey background appears but it is behind the main panel and the modal is either presented behind this or is just simply not displaying.
I spent hours researching various methods, implemented the CancelControlID to see if it was somehow tied to my call of modal.Hide() that fails.This occurs with an updatepanel only. The behaviour is much cleaner this way, so I would hope to be able to implement this. I have basically eliminated everything but these two events!
I'm having a bit of an issue in my ASP.Net application moving focus from a textbox in one user control to a text box in the next user control on the page after postback. I've searched high and low over the last several days to find a solution but, for whatever reason, have been unable to do so.
I have a page that has user controls loaded dynamically to allow a user to enter data.The number and type of user controls loaded to the page is determined at run time based on a database query.It is possible than many controls of the same type can be loaded. Each user control has its own update panel. Within the update panel of each control is a regular asp panel. Inside of the regular panel there are at least 2 server controls (any other controls that may exist in the user control are not affected by this issue) - a text box and a button.The defaultbutton property of the regular panel is set to the ID of the button within the user control. The desired behavior is to allow the user to enter data into the textbox on one user control hit enter to save the data on that user control the application will set focus to the textbox of the next user control on the page after the data from the "current" user control has been saved. Other considerations;
The application uses master pages. We make extensive use of ajax and the ajaxtoolkit in the application. I am using Visual Studio 2010 and .Net 4 The issue - when first entering the page, one can enter data into the first textbox and press the enter key. Data from "current" user control is correctly saved and focus is correctly moved to the next user control on the page.
Data can be entered into the textbox of "new" user control and when the enter key is pressed, the data is correctly save. The focus appears to move correctly to the next user control on the page.Data cannot be entered into the textbox of the control. Pressing the enter key will not save the data (because none was entered) but the focus will move to the textbox of the next user control on the page.
Data can be entered into the textbox of the user control. When the enter key is pressed, the data is correctly saved and the focus appears to move correctly to the textbox of the next control on the pageBasically, steps 3 and 4 are repeated until the end of the user controls on the page, alternating between being able to enter data and not. Other items of note When one is able to enter data into the textbox of a user control, one can correctly tab through the textboxes of each user control until the end of the page When one is not able to enter data into the textbox of a user control, pressing the tab key will take the focus to the address bar of the browser.
I created a much simplified example of the scenario described above and was able to consistently reproduce the "bad" focus behavior. All of the ajax toolkit controls and code where stripped out of the sample to rule the toolkit out as a cause. The behavior still occurs without the toolkit.
I am including the code for default.aspx and WebUserControl1.ascx.
If I have a calendar extender paired with a textbox, then things work as expected. I can set a date eg 03/10/2011. I can then type in the textbox to update that date to something like 03/12/2011 and the calendar updates as well.
[Code]....
However, the moment I add a button to pop the calendar up, the calendar doesn't change when you manually type a new date.
[Code]....
In the second example, you can set the date the first time. Any updates from then on have to be through the calendar though. I can type in the textbox, but it will not update the calendar. Am I missing something or does this calendar extender have a major bug? If anyone knows a clean elegant fix, I would be very appreciative. I am not all that excited about manually hooking up a change event to that textbox and then updating the calendar extender, but if I have to I will.
Is it possible to set a "not set" value for the SliderExtender? For example, I have a SliderExtender defined to take an integer value from 1 to 5. However, until someone sets it, I want the SliderExtender to return a "not set" value, and for the handle/rail to signify that it has not been set (e.g. handle/rail in a different colour). I have tried using the value "0", NULL, Empty, dbNull. In each case I either receive an error (invalid value) or the SliderExtender "cleverly" sets itself to the minmimum value of "1" I have tried the following...
When the usercontrol is initially loaded I set the rail to red colour using RailCSSClass, and set the TextBox to "0" - which is not a legitimate value because the extender expects an integer between 1 and 5. The result, upon initial loading of the usercontrol is that the rail is red in colour (indicating to the user that they need to set it) and the handle appears in position 1. All is reasonably well at this point. HOWEVER, if anything on the web page causes a postback, the SliderControl's TextBox sets itself (as expected, I suppose) to "1", and the TextChanged event fired - making it look as if someone has now selected a value. So.... can the SliderExtender/TextBox be made to "accept" a "not set", value by some other clever means - and to remember that "not set" value between postbacks?
i have few textbox on the form and when the user submit i want to capture the data and insert into db
here is what my code looks like
beforeSubmit: function(data) { // called just before the form is submitted var item = $("[id$='item']"); var category = $("[id$='category']"); var record = $("[id$='record']");
I am binding the ReorderList in my code behind file. I am not using a DataSource Control like SQLDataSource etc. How will I capture the values edited, in my ReorderList1_UpdateCommand(). In GridView we can use something like
(TextBox)GridView1.Rows[e.RowIndex].Cells[4].FindControl("txtMyTextBox").Text. Is there anything similar in a ReorderList?
How do you capture the text that is typed in an AJAX HTML editor that includes all of the formatting of the text so the text could be printed out exactly has it was put in.Example: Capture the text along with all the markup and store it in a database so it could be output again with all the formatting. This website does that, people put it in and then somehow it's displayed later.
When an asynchronous postback happened inside update panel, another postback happens also for MasterPagenot only update panel embedded page .I want to prevent this MasterPage postback . is this possible ?think like i have a MasterPage and another page which is test.aspx which is content page of MasterPagei have update panel at test.aspxwhen asynchronous postback happens at this test.aspx update panel it also loads MasterPage Page_Loadi want to prevent this (it should not also load MasterPage Page_Load)