Solved

display alert in asp.net web service

Posted on 2006-11-27
11
362 Views
Last Modified: 2008-02-01
Hi Experts

I want to display alert in asp.net web service how can i do this currently i am displaying alert by following code but it generates error "This is an unexpected token. The expected token is 'QUOTE'."

Dim str As String = "<script langugae=javascript> alert('Templates have been updated.'); </script>"
System.Web.HttpContext.Current.Response.Write(str)

it very urgent.

Thanks,
Ahmad
0
Comment
Question by:imrancs
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
  • 2
11 Comments
 
LVL 28

Expert Comment

by:mmarinov
ID: 18026009
Why do you want to display in the web service? I think it is more common to think in the direction of displaing the alert in the application that requests the web service

regards
0
 
LVL 10

Author Comment

by:imrancs
ID: 18026049
Hi mmarinov

I run some store procedure in web service which take 5 to 10 minutes so after finish it i need to display some message to client. these procedure calls in thread so user can do some other task during the process of these procedure.

thanks,
ahmad
0
 
LVL 28

Expert Comment

by:mmarinov
ID: 18026090
why don't you use async requests to the web service. (using async pages in 2.0 or using ajax in 1.1 and 2.0)

check these links
http://msdn.microsoft.com/msdnmag/issues/05/10/WickedCode/
http://www.informit.com/articles/article.asp?p=174363&seqNum=2&rl=1
http://www.theserverside.net/discussions/thread.tss?thread_id=35834

regards
0
Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

 
LVL 10

Author Comment

by:imrancs
ID: 18026113
i try it after that i will response back you
0
 
LVL 9

Expert Comment

by:codeclay
ID: 18026262
Try this

    <WebMethod()> _
    Public Sub GetStringAndShowAlert(ByVal strAlert As String)

        Dim sScript As System.Text.StringBuilder
        sScript = New System.Text.StringBuilder()
        sScript.Append("<HTML><HEAD> ")
        sScript.Append("<script LANGUAGE='javascript'> ")
        sScript.Append("function ShowMessage() { ")
        sScript.Append("alert('This is the input string: " + strAlert + "');")
        sScript.Append("}")
        sScript.Append("</script>")
        sScript.Append("</HEAD>")
        sScript.Append("<BODY onload=ShowMessage();>")
        sScript.Append("</BODY></HTML>")
        System.Web.HttpContext.Current.Response.Write(sScript.ToString())
    End Sub
0
 
LVL 10

Author Comment

by:imrancs
ID: 18026932
Hi Codeclay

I am getting following error.
The <HTML> tag from namespace  is not expected.

how to resolve it.

thanks,
ahmad
0
 
LVL 9

Expert Comment

by:codeclay
ID: 18026957
It works fine for me . Did u try using the webmethod mentioned above in a new webservice ? Also could you post your code here?
0
 
LVL 10

Author Comment

by:imrancs
ID: 18027033
it works fine in web service but when i call it from the application then it generates error

Here are code
Calling from Application
        Dim obj As New localhost.TemplateService
        Try
            obj.GetStringAndShowAlert("Test")
        Catch ex As Exception
        End Try

Web Service Code
Imports System.Web.Services
'Imports System.Threading

<System.Web.Services.WebService(Namespace:="http://tempuri.org/TemplateService/TemplateService")> _
Public Class TemplateService
    Inherits System.Web.Services.WebService

    'Private objThread As Thread
    'Dim obj As Object
    'Dim objApp As Object
    'Dim DataBaseName As String
    'Dim xmlFileName As String = "../Databases.xml"
    'Dim BContract, BTemplate As Boolean
    'Dim SPage As Integer
#Region " Web Services Designer Generated Code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Web Services Designer.
        InitializeComponent()

        'Add your own initialization code after the InitializeComponent() call

    End Sub

    'Required by the Web Services Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Web Services Designer
    'It can be modified using the Web Services Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        components = New System.ComponentModel.Container
    End Sub

    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        'CODEGEN: This procedure is required by the Web Services Designer
        'Do not modify it using the code editor.
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

#End Region

    ' WEB SERVICE EXAMPLE
    ' The HelloWorld() example service returns the string Hello World.
    ' To build, uncomment the following lines then save and build the project.
    ' To test this web service, ensure that the .asmx file is the start page
    ' and press F5.
    '
    '<WebMethod()> _
    '  <WebMethod()> _
    ' Public Sub UpdateAllDetailsSection(ByRef DBName As String, ByVal BIsTemplate As Boolean, ByVal BIsContract As Boolean)


    '      BContract = BIsContract
    '      BTemplate = BIsTemplate
    '      DataBaseName = DBName

    '      obj = System.Web.HttpContext.Current.Server.MapPath(xmlFileName)
    '      Me.objThread = New Thread(AddressOf StartThread)
    '      objThread.Name = "Thread_1"
    '      Me.objThread.IsBackground = True
    '      Me.objThread.Start()
    '      'Dim str As String = "<script langugae=javascript> alert('Templates have been updated.'); </script>"
    '      'System.Web.HttpContext.Current.Response.Write(str)

    '  End Sub

    '  <WebMethod()> _
    'Public Sub UpdateAllPagesSection(ByRef DBName As String, ByVal BIsTemplate As Boolean, ByVal BIsContract As Boolean, ByVal SummaryPage As Integer)
    '      SPage = SummaryPage
    '      BContract = BIsContract
    '      BTemplate = BIsTemplate
    '      DataBaseName = DBName
    '      obj = System.Web.HttpContext.Current.Server.MapPath(xmlFileName)
    '      Me.objThread = New Thread(AddressOf StartDetailThread)
    '      objThread.Name = "Thread_1"
    '      Me.objThread.IsBackground = True
    '      Me.objThread.Start()
    '      'Dim str As String = "<script langugae=javascript> alert('Templates have been updated.'); </script>"
    '      'System.Web.HttpContext.Current.Response.Write(str)

    '  End Sub

    <WebMethod()> _
    Public Sub GetStringAndShowAlert(ByVal strAlert As String)
        Dim sScript As System.Text.StringBuilder
        sScript = New System.Text.StringBuilder
        sScript.Append("<HTML><HEAD> ")
        sScript.Append("<script LANGUAGE='javascript'> ")
        sScript.Append("function ShowMessage() { ")
        sScript.Append("alert('This is the input string: " + strAlert + "');")
        sScript.Append("}")
        sScript.Append("</script>")
        sScript.Append("</HEAD>")
        sScript.Append("<BODY onload=ShowMessage();>")
        sScript.Append("</BODY></HTML>")
        System.Web.HttpContext.Current.Response.Write(sScript.ToString())
    End Sub

    'Public Sub StartDetailThread()
    '    Template.UpdateAllPages(DataBaseName, obj, BTemplate, BContract, SPage)

    '    Me.objThread.Abort()

    'End Sub

    'Public Sub StartThread()
    '    Template.UpdateAllDetails(DataBaseName, obj, BTemplate, BContract)

    '    Me.objThread.Abort()

    'End Sub
   

End Class
0
 
LVL 9

Expert Comment

by:codeclay
ID: 18027475
Modify the GetStringAnd ShowAlert method as follows
 Private Function GetStringAndShowAlert(ByVal strAlert As String) As String
        Dim sScript As System.Text.StringBuilder
        sScript = New System.Text.StringBuilder()
        sScript.Append("<HTML><HEAD> ")
        sScript.Append("<script LANGUAGE='javascript'> ")
        sScript.Append("function ShowMessage() { ")
        sScript.Append("alert('This is the input string:" + strAlert + "');")
        sScript.Append("}")
        sScript.Append("</script>")
        sScript.Append("</HEAD>")
        sScript.Append("<BODY onload=ShowMessage();>")
        sScript.Append("</BODY></HTML>")
        GetStringAndShowAlert= sScript.ToString()
    End Function

From the application where you call this ,

 Dim obj As New localhost.TemplateService
        Try
            Dim strText As String = obj.GetStringAndShowAlert("Test")
            Response.Write(strText)
        Catch ex As Exception
        End Try

0
 
LVL 10

Author Comment

by:imrancs
ID: 18043605
Hi Codeclay

it works fine if not put to in thread if put it into thread then it does not work fine. have you any solution for this?

thanks,
ahmad
0
 
LVL 9

Accepted Solution

by:
codeclay earned 500 total points
ID: 18051937
Lets change the way you call the web service . Use threading .

 Dim wHandle() As Threading.WaitHandle = {New AutoResetEvent(False), New AutoResetEvent(False)}
        ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf Method1), wHandle(0))
        ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf Method2), wHandle(1))
        WaitHandle.WaitAll(wHandle)
 Private Sub Method1(ByVal state As Object)
        Dim arg As AutoResetEvent = CType(state, AutoResetEvent)
        Dim objSer As New localhost.Service
        Dim strText As String = objSer.GetStringAndShowAlert("aaa")
        Response.Write(strText)
        Response.Flush()
        arg.Set()
    End Sub
    Private Sub Method2(ByVal state As Object)
        Dim arg As AutoResetEvent = CType(state, AutoResetEvent)
        Dim objSer As New localhost.Service
        Dim strText As String = objSer.GetStringAndShowAlert("aaa")
        Response.Write(strText)
        Response.Flush()
        arg.Set()
    End Sub


Change the GetStringAndShowAlert method in the webservice as follows
 Private Function GetStringAndShowAlert(ByVal strAlert As String) As String

        Dim sScript As System.Text.StringBuilder
        sScript = New System.Text.StringBuilder()
        sScript.Append("<script LANGUAGE='javascript'> ")
        sScript.Append("alert('" + strAlert  +"');")
        sScript.Append("</script>")
        GetStringAndShowAlert= sScript.ToString()

 End Function
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Today is the age of broadband.  More and more people are going this route determined to experience the web and it’s multitude of services as quickly and painlessly as possible. Coupled with the move to broadband, people are experiencing the web via …
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…
In this brief tutorial Pawel from AdRem Software explains how you can quickly find out which services are running on your network, or what are the IP addresses of servers responsible for each service. Software used is freeware NetCrunch Tools (https…

635 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question