Skip to content Skip to sidebar Skip to footer

Asp:button In Jquery Dialog Box Not Firing Onclick Event

I have an asp:Button inside a jQuery dialog for which the OnClick event isn't firing. I'm using the PostBackUrl property to navigate to another page, but I want to set this propert

Solution 1:

Try this

functionshowDialog() {
    $('.divDialog').dialog({
        modal: true, show: 'slide', width: 500
    });
   $(".divDialog").parent().appendTo($("form:first"));
}

You should be appending divDialog to the form not that empty divInnerForm.Then your button will be in the form and its on click event will fire happily.

Update

Try also using onclient click.Then wire this attribute to a function which will force a post back on the hidden button.

<asp:ButtonID="btnSubmit" runat="server"Text="Submit"OnClientClick="forceClick();" />
<aspButtonid="hidButton"runat="server"onclick="hidButton_Click" />functionforceClick(){

__doPostBack('<%#hidButton.UniqueId %>');
}

Then use the event handler hidButton_Click to put your code.

Solution 2:

$(this).parent().appendTo('form') 

should work fine.. Append it to the form to fire server side events

Solution 3:

When I use the jQuery dialog, I always use the buttons that come as part of the dialog. Then when they're clicked, I call a javascript function to perform my action.

If I need to handle a PostBack from those buttons, then I create a separate ASP.Net button on the page - this is the button I use to handle my OnClick event. The user won't click this ASP.Net button, though (I hide it with css so it's not visible on the page). Instead, the javascript function I call when they click the dialog button will call code that will mimic a click of my ASP.Net button.

The result is that when the dialog button is clicked, the page will PostBack as though the ASP.Net button was clicked, and I can handle it via my OnClick event.

Here's some sample code (in VB.Net)...

Dim csm As ClientScriptManager = Page.ClientScript
    Dim js AsNew StringBuilder
    js.AppendLine("function handleSubmitMyButton() {")
    js.AppendLine(csm.GetPostBackEventReference(MyButton, ""))
    js.AppendLine("}")
    csm.RegisterClientScriptBlock(Me.Page.GetType, "create_call_to_MyButton", js.ToString, True)

When the page is built, it will include the handleSubmitMyButton() javascript function. The dialog button click will call this function, which will trigger the PostBack as though the 'MyButton' button was clicked.

Usually I don't have to hide the ASP.Net button with css. It's often the button that gets clicked to open the dialog. I prevent the PostBack when it opens the dialog; then when the dialog button is clicked, I mimic the click of that button.

UPDATE: I saw several people mention the following line of code

$(this).parent().appendTo(jQuery("form:first"));

I thought that's what you were attempting to do with your line of code:

$('.divInnerForm').append($(this).parent());

If that doesn't do the same thing, though, you would need to have the code to add your fields to the form.

Solution 4:

I use the modal dialog and i need to add a row, otherwise i get the modal transparency over the close button!

var $ObjDialog = $("div[id*='div_MyPopup']");
$ObjDialog.dialog({
    modal:true
});
$ObjDialog.parent().prev().appendTo($("form:first"));
$ObjDialog.parent().appendTo($("form:first"));

Post a Comment for "Asp:button In Jquery Dialog Box Not Firing Onclick Event"