Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

After Post Back my jQuery code not working

I have server side button. First time jquery is working fine but next time jQuery not wroking. I am using jQuery inside Update Panel.

Below is my Jquery code.

<script type="text/javascript" src="../../js/jquery-ui-1.11.4.min.js"></script> 
<script type="text/javascript">            
(function ($) {
    $('.mv-spinner').spinner(), $('.mv-action').button(),
    $('.table-mv-vouchers').tooltip(), $('.table-mv-vouchers select').selectmenu() 
})(jQuery)
</script> 

Also I have used my code in page load function but not working.

 protected void Page_Load(object sender, EventArgs e)
 {      
        Page.ClientScript.RegisterStartupScript(typeof(UpdatePanel), "scrg", "<script type='text/javascript' src='../../js/jquery-ui-1.11.4.min.js'></script>");
        Page.ClientScript.RegisterStartupScript(typeof(UpdatePanel), "scr", "<script type='text/javascript'>  (function ($) { $('.mv-spinner').spinner(), $('.mv-action').button(), $('.table-mv-vouchers').tooltip(), $('.table-mv-vouchers select').selectmenu() })(jQuery) </script>");
 }

How I will fix this issue? jQuery does not perform after postback. Thanks in advance!

like image 388
Letoncse Avatar asked Nov 29 '22 23:11

Letoncse


1 Answers

Your initialization will run only on document ready (not on postback). Since you place your control inside UpdatePanel, anything will updated after postback.

Try with the below suggestion

You need to recreate the Jquery Codes on postbacks like given below

<script type="text/javascript"> 
    $(document).ready(function() {
        //jquery code
    });

    var parameter = Sys.WebForms.PageRequestManager.getInstance();

    parameter.add_endRequest(function() {
        //jquery code again for working after postback
    });
</script>

this is the solution got once i got the same issue and worked fine for me..check

Updated:

If above code give error like Sys undefined then try below code.

<script type="text/javascript"> 

$(document).ready(function () {

    //jquery code

    var parameter = Sys.WebForms.PageRequestManager.getInstance();

    parameter.add_endRequest(function () {
        //jquery code again for working after postback
    });
});

</script>
like image 96
Sachu Avatar answered Dec 10 '22 10:12

Sachu