Invoke client side button click from server event (asp.net) - asp.net

I'am building an asp.net application that have a gridview inside an update pannel.
In this grid, I added a command field that raise a server event to fill fields on my modal popup hiden div section.
Off course, once filled, I want to display the modal popup to the user.
my issue is : how do I make that popup visible?
I use http://www.ericmmartin.com/projects/simplemodal/
the same way it work in the sample, the modal work well when I click on a client side link, but how may I invoke the show event from a server side even with asp.net (VB or C#)?
I am totally new to JQuery and AJAX, thanks for your help
Steph

Add this code to command button's click handler method:
ScriptManager.RegisterStartupScript((Control)sender, sender.GetType(), Guid.NewGuid().ToString(),
string.Format("$('#{0}').modal();", modalDiv.ClientID ), true);

Related

disable button from submitting multiple time

I have created a visual webpart which means it has not form / body element in it. I have three submit buttons on the webpart. At one time, only one of there three button is visible. These button performs validation on multiple controls that are added on the webpart and then call server side methods.
Issue is that it takes time for webpart to submit and during this user can press submit button more than once which result is malfunction of the application.
I have tried jQuery solutions like adding disable attribute to submit button but it stops webpart from submitting as well.
Any help to stop multiple submit.
You can consider using Ajax for posting your form.
And, until some processing is going on server, disable UI & show a Loading Image.
Refer:
jQuery.ajax()
UpdatePanel Control Overview
UpdateProgress Control Overview

Returning parameters from new window

What I want is to open a new popup from the server side, this pop up has a form with three fields, and then return this three fields to the parent page. But I want this fields in the server side, in the VB.NET code. Is this possible?
Is a modal popup window acceptable? If so, you could put the variables in an update panel, and use the server side event of the button that causes a postback on the modal to force the the update panel to update.
Create a form to show as popup
Display it
Perform a POST request onto the parent form to pass the values
or
save input into Session vaariable and read it on popup close

RegularExpressionValidator firing too early

I have an ASP.NET web application that is using RegularExpressionValidator controls inside of a user control. The user control is placed inside of a panel with an ajax:modal popup. When I click the link, it will open the popup displaying the user control.
What is happening is when I click the link to open the popup, it is throwing a postback and activating the validators before the user has any opportunity to type anything into the boxes. I need to be able to click the link, open the popup, fill out the text boxes, and submit. The validators should only run when the submit button is clicked. Any ideas?
setting the validators parameters on the load in the code behind of the popupbox might fix your problem

Page_Load after Modal Popup

I have a page with a user control which gets some data updated via a modal popup. Upon clicking "ok" on the modal popup - the new data is being written to the database - but the base page doesnt "reload" to show the updated data. How do I get that to happen?
1) Don't set the OKControlID property on the ModalPopupExtender.
2) In your Page_Load, set OkButton.OnClientClick = string.Format("$find('{0}').hide();", modalPopupExtender1.ClientID);
Explanation:
Setting the OkControlID stops the button from posting back. Instead, manually use javascript to hide the extender, which will allow the button to post the form.
You'll either have to update that control using ajax, or you could just do a Response.Redirect(assuming your modal is .net, or document.location if js) back to your page after your data has been updated.
Make sure the "Ok" button in your modal popup is causing a postback. If you want it to be ajax-enabled, make sure to put it inside of an update panel.

Passing data to server code from a client-side control using ASP.NET AJAX

I have a ListView on a page that displays a list of widgets. When a user clicks on one of the items in the list, I want to display a ModalPopup that contains controls allowing the user to operate on the item they selected.
I could easily accomplish this by placing a Panel and a ModalPopupExtender in the ListView's ItemTemplate, but this mean one set of hidden controls for each and every widget, which would massively bloat the page size. (There are going to be some rather heavyweight controls in there.) Instead I want to reuse a single ModalPopup for each of the widgets in the list.
I've done some searching but I haven't found anything that applies directly to my situation before. From what I've been able to figure out, however, I have to do something like this:
Place a Panel and a ModalPopupExtender on the page inside an UpdatePanel.
Build a custom WidgetManipulator user control that has a WidgetID property. Put this in the Panel, along with a couple OK/Cancel buttons.
In Javascript on the page, attach a click handler to each widget in the ListView that triggers a postback on the UpdatePanel.
On the UpdatePanel_Load event on the server, display the ModalPopup and then set the WidgetID propety on the WidgetManipulator to the ID of the clicked widget.
On the OKButton_Click event or CancelButton_Click event on the server, hide the ModalPopup. If OKButton was clicked, call WidgetManipulator.SaveChanges() first.
The part I haven't figured out is: How the heck do I know what widget was clicked on, and how do I pass that back to the server when I refresh the UpdatePanel? Is this even the right approach at all?
If you can use jQuery instead you could do something along the lines of these two posts:
Modal Delete Confirmation Version
Two Using jQuery SimpleModal Plugin
Demo
Inserting Content Using
jQuery SimpleModal Plugin Demo
When I need to pass data from client to server in ASP.NET AJAX, I generally use an asp:HiddenField with runat="server". Both can see it freely, but beware potential postback asynchronicity.
Sounds like you need to notify the server the widget was clicked - You may use a Timer to postback; or I'd go with option 5.

Resources