AJAX :: ModalPopupExtender: After Postback, Client-side Show() No Longer Works
Mar 23, 2010
I'm using what I believe is a pretty common/boring/generic implementation of a ModalPopupExtender. I'm using client-side JS to show the dialog when the user clicks a link, and hide it if they click "cancel". I only do a postback if they truly want to save the data.
I can click the link to show the dialog, then click the cancel button to hide it, then click the link to show it... ad infinitum. If I decide to save the data via a postback, everything works well, and the dialog is hidden as a result of the postback, all as expected.
However, once the postback completes, my client-side JS show() never works again. Any attempts to click the link fail quietly; no error messages, the dialog just never shows again.
I have a gridview that displays items awaiting supervisor approval. The supervisor clicks the Review button and a modal window should popup with the results of a database query on the record. I am using a dataketname param on the grid. Here are the ASPX elements, The gridview and the modalpopup code
[Code]....
I am using mpeApproval.Show() in the codebehind but it isn't firing. I've been at this literally all day and am feeling pretty stupid at the moment. Have I provided enough for you to make a determination?
If I enable client side validation in the view I'll get the error per the Attributes from the metadata class. If I take clientside validation out, error gets thrown from saving to the DB rather than return the view with an Error Summary.
This is the top portion of my view....
<% using (Html.BeginForm()) {%> <%: Html.ValidationSummary(true) %>
I've tried running without debugging (ctrl + f5) in debug and release mode as well as setting breakpoints and Debugging (f5) but it just seems weird to get Client side validation without server side validation. What am I missing here?
if in the code behind, I set the label to "You must enter a value if the textbox is empty" to validate it on the server side and this is fine, but if javascript is enabled, I don't want to show the client side validation and the server side label together. Is this something where I would just have to disable the client-side validators if javascript was enabled?
I know that I can receive an javascript object from the server via ASP.NET AJAX using Json. But I am not sure how can I send an javascript object from my client-side javascript to my server-side code. And if I can, how can I extract this object in my server-side code and access its members?
I have some validation JS code on client, that must be executed befor PostBack.If this validation code return 'false', postback is needless.How it can be disabled?
I am developing a web page where a user will submit some "Comments" on a form. When they click the submit button, I fire off some javascript that captures their current GPS location, which I store in a visible Text Box (for testing purposes). If the user is updating from a device that doesn't support gps, I add text to my textbox that says "Device does not support GPS".
When I get to the server, using a device that doesn't support GPS, that text comes through just fine. When I use my iPhone, I see the GPS Coords in my textbox, but that textbox value doesn't make it to the server.I'm thinking that there is a 2-3 second delay from the time that the button is clicked to the time that the java finishes retrieving the GPS. So the textbox text isn't set fast enough.I'm wanting to prevent a postback for 3 seconds (for example) to give the javascript time to update the textbox.
I am using two listbox for moving items from one to another using jquery. Auto postback is set to false for both the listboxes. Is there a way to access the items server side on postback?
I have a ListView that contains a large collection of rows with textboxes that users can optionally fill out. These textboxes are not databound. When the user clicks "next" i need to iterate over the rows and determine which fields the user has filled out, and then update a sort of "cart" with the data and move to a confirmation page ("you have selected a, g, v, zz, is this correct?" sort of thing).
I can think of two ways to deal with this. The first is, server side, to walk the items in the listview, get the control ID's, save this data to a list, then save it to a database cart table for the next screen to read.I can use jquery to collect all the values client side, then pass it back to the form in a hidden field and use something like Newton.Json to get the data into a similar list.What are the tradoffs of these two approaches?
I reordered some items in a listbox using Javascript. When I read the items in a postback in the code behind (ASP.NET), the order is in the original order. How do I get the same order as shown in the screen after Javascript manipulation?
I m using site login Control in my login.ascx file and disaplaying login control in Div so if there is login link in page and i click on that then Login Div will popup which is site login.May i know how can handle error like username or password is incorrect on client side instead server side?
in a form i have a buttoin, when click both OnclientClick and postback should happen. on clicking the "Email" button a client side "mailto" tag should do the work and pull a new message window on the client's machine.
whereas, the email addresses should be invoked by the post back. so , when clicking the button the server side post should happen and on return the client side script should be invokded with the values read during post back, and populate all the email addresses.
i need know how to first do a server hit take the values and then execute the client script with those values without using AJAX
I am calling server side methids from client side using PageMethods. Can those methods return value back to client side. If yes then how and if no then how can that be achieved? refer to my code below.
I am using VS2010 and .NET4 for a web app. I have a script manager/update panel that has a couple of grids.
The client just leaves the page opens and views an updated grid every 30 seconds or so.
I want to refresh the grid by calling the server side method to load the grid, but not load the whol page using meta refresh or similar (too much screen flicker and unnecessary bandwith).
Is it possible to set some timer using javascript or something and call a specific server method to refresh controls?
I want to do something a little bit tricky here. I want to call a server side fonction from the javascript. I know it can be done but I get some errors. This is my Javascript fonction where I want to call the server side fonction:
Basically I want to get some javascript to be sent back to the client and executed from a postback inside an UpdatePanel. Furthermore this is inside of a reusable WebControl. I've tried
this.Page.ClientScript.RegisterStartupScript and this.Page.ClientScript.RegisterClientScriptBlock but Firebug shows that those scripts aren't sent back in the postback's response.
I also tried straight up writing a <script> tag inside the control's main div in the Render method, which does get sent back but isn't executed. I got a hacky solution working, but ideally looking for a cleaner solution. The hack is to add a 1x1 pixel img with width/height set to 0 and use that for an onload event to execute the script and that works, but it seems like there has to be a cleaner way to do this.
I have a panel extended by the ModalPopupExtender that is sometimes shown using the .Show() method in my code-behind. I have a javascript function that resizes the popup and am able to get it to run when I use the client-side show function but how do I run the same javascript function when using the server-side Show() function?
I'm using a ModalPopupExtender in my website, to show "accept/cancel" messages, and catch the user selection at the server side. I put two buttons (ok/cancel) at the panel that will be shown as a modal popup, add them a server side event handler, but it does not fire.
I'm using asp.net and c# to build a web application. I'm trying to display a popup message using the ModalPopup extender. The message displays fine only if it sets in client side or in server side but inside Page_Load. Otherwise, it displays as empty. the popup comes up without the message.
The thing is that i want to change the meesages when i call its show() method.
I have two checkboxes: cb1 and cb2. They are both hooked up to an onClick event which checks if at least one checkbox is clicked. If this is not the case, it throws an alert and reverts the change. If a legal change was made (e.g. cb2 was checked, followed by cb1 being unchecked), the function calls the server function checkChange() which needs the object and eventargs.
I'm having trouble with the following:
Reverting the change: how can i find out which checkbox was clicked without adding an extra javascript function for the second checkbox? This has to be a scalable solution as more checkboxes may be added later. How do I call the server function checkChange(). I am aware of "this.Page.GetPostbackEventReference" but I am confused as to the parameters it takes.
I encouter some postback issue when using GetPostBackEventReference. Here is the Scenario:I have a javascript modal popup dialog and got a button in this modal dialog which used to select things (this is NOT an asp:button control)
When this javascript dialog HTML button is clicked, it will call the MS AJAX web service call by the javascript: eval() method. And this MS AJAX web service call is dynamically generated. So the code is like this:
var serviceCall = svcCall + "(" + parameters + ")"; //dynamically generate the MS AJAX web service call here eval(serviceCall);
//use eval to trigger the MS AJAX web service call
As you may all know, after complete the MS AJAX web service, you can define a callback function to handle the completion:
function OnComplete(result, userContext, methodName) {
//force to call postback manually eval($(userContext[0]).val()); [code]...
As you can see, this is how I bound the asp:button (i.e. btnSelectUser) 's Click Event to the asp:hiddenfield using the GetPostBackEventReference, and set the registerForEventValidation argument to false. I have also tried to use different ValidationGroup and set the CausesValidation to false.In summarize, I bound the asp:button's Click PostBackEventReference(i.e. __doPostback(....)) to the asp:hidden field's Value attribute, and using javascript eval() to eval this hidden field's value in order to manually trigger postback.
p.s. the btnSelectUser is an asp:button control and used to call out the javascript modal dialog.
Ok, here is the Problem:In the same page, there is some asp:validator, e.g. and , and of coz, when the page run into error, this validator and callout will display to the user. e.g. When the user didn't fill in anything and submit the form, the ValidatorCalloutExtender will display a ballon and tell the user. Imagine one of this ballon/validatorCalloutExtender come out and on top of your screen at the moment.
Then you click the btnSelectUser (asp:button) to show the javascript modal dialog, and in the dialog, you Add some users, and once you hit the SELECT button inside this modal dialog, a MS AJAX web service is trigger as mentioned above, and once this web service is complete, it eval() the asp:hidden field's value (i.e. __doPostback(...))......and do the postback manually.
However, because of the validatorCalloutExtender ballon has display, it somehow cannot trigger the postback in this way, but when I close the ballon/validatorCalloutExtender, the manual postback using eval() is just working fine. Even more strange is that, when the ballon is displayed, the first time I click the SELECT button inside this modal dialog it doesn't fire the postback, however, if I do the same thing again (i.e. open up the javascript dialog, and choose some users, then click the SELECT button again). It able to do the manual postback....and I don't understand why the first time doesn't work.