Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 275
  • Last Modified:

ASP.NET trigger javascript function from Server side

hi Experts,



  On the click of a button , some server side process is happening  .  I already have a small piece of javascript ( runs at on clientclick) to show a  'waiting image'  .
    The javascript line of code is
            document.getElementById("HiddenLoadingImage").style.display = 'block';
    (The defualt display state of the Image is hidden  and it is shows up only when the button is clicked)

 Also, when the server  processing is over, I have a  server side line of code to show a message that the processing is done
   
    System.Web.HttpContext.Current.Response.Write( _
           "<SCRIPT LANGUAGE='JavaScript'> alert('Process Done')</SCRIPT>")
     
    But my issue is -  The Waiting image  is still visible when the Alert of  "Process Done"  pops up.  
    How can I  hide the image first and then show the Alert ?

  Thanks

   Sam
0
Sam OZ
Asked:
Sam OZ
  • 5
  • 5
1 Solution
 
Ramkisan JagtapLead DeveloperCommented:
Please check the default state of the image. I doubt if it is hidden when it is loaded.

or you can try editing your server side script as below:

 System.Web.HttpContext.Current.Response.Write( _
           "<SCRIPT LANGUAGE='JavaScript'> alert('Process Done');
document.getElementById("HiddenLoadingImage").style.display = 'none';     </SCRIPT>")
0
 
Sam OZAuthor Commented:
Hi Ramkisan,

     I am not sure I stated my issue clearly . When the alert pops up the image is visible. But if I click ok, the image becomes invisible

 I already tired the code you suggested . It doesn't work , unfortunately
0
 
Ramkisan JagtapLead DeveloperCommented:
HI Sam,

Just give a try with following:

System.Web.HttpContext.Current.Response.Write( _
            "<SCRIPT type='text/javascript'>  document.getElementById("HiddenLoadingImage").style.display = 'none';
alert('Process Done');
    </SCRIPT>")
0
Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

 
Sam OZAuthor Commented:
Hi Ram,

   I have tried that too,  That is not the solution.
0
 
Ramkisan JagtapLead DeveloperCommented:
If possible, Can you please post your code here?
0
 
Sam OZAuthor Commented:
Hi Ram,

   Please see the attachment for the test code . ( You need to have an image by name Spinner.jpg  under the folder \images  )

 Just a correction  in my code ---  
      Use either    System.Web.HttpContext.Current.Response.Write
            or  ScriptManager.RegisterStartupScript
       ( You need to comment out one of thse)
ClientPostFromServer.zip
0
 
Ramkisan JagtapLead DeveloperCommented:
Hello Sam,

Change you code as below:

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">
   
   <script type="text/javascript" language="javascript">

       function AlertClient() {
           document.getElementById("HiddenLoadingImage").style.display = 'none';
           alert("Test Done");
       }

       function DisplayLoadingImage() {
           document.getElementById("HiddenLoadingImage").style.display = "block";
       }

  </script>

    <title></title>
</head>

<body onload="AlertClient()">
    <form id="form1" runat="server">
         <div>      
        <img id='HiddenLoadingImage' src="Images/Spinner.jpg" style="display:none"/>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="DisplayLoadingImage()" />
    </div>        
    </form>
</body>
</html>

 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        WasteTime()
        Dim strMessage As String
        strMessage = "This is test"
    End Sub

    Sub WasteTime()
        Dim i, j, k As Integer
        For i = 0 To 1000
            For j = 0 To 1000
                For k = 0 To 100

                Next
            Next
        Next
    End Sub
0
 
Sam OZAuthor Commented:
Hi Ram,

    It can't happen on the Onload in the client . it should happen only after the Button is clicked ( In my actual code there are many other controls)

 Also , Infact, strictly speaking , the Alert should come with the value of a server variable ( But that is not the real problem I face)
0
 
Ramkisan JagtapLead DeveloperCommented:
Are you using ajax in your project? If yes you can make a use of Update Progress from ajaxtoolkit dll

http://ajax.net-tutorials.com/controls/updateprogress-control/
0
 
Sam OZAuthor Commented:
Hi Ram & other Experts,

    AJAX is not used in this project , unfortunately  ( This is a revamp project ) . Also I am a little naive with AJAX

    Is there really a way to do this with no AJAX ?
0

Featured Post

Ask an Anonymous Question!

Don't feel intimidated by what you don't know. Ask your question anonymously. It's easy! Learn more and upgrade.

  • 5
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now