Link to home
Start Free TrialLog in
Avatar of imrancs
imrancsFlag for Pakistan

asked on

display alert in asp.net web service

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
Avatar of mmarinov
mmarinov

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
Avatar of imrancs

ASKER

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
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
Avatar of imrancs

ASKER

i try it after that i will response back you
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
Avatar of imrancs

ASKER

Hi Codeclay

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

how to resolve it.

thanks,
ahmad
It works fine for me . Did u try using the webmethod mentioned above in a new webservice ? Also could you post your code here?
Avatar of imrancs

ASKER

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
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

Avatar of imrancs

ASKER

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
ASKER CERTIFIED SOLUTION
Avatar of codeclay
codeclay
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial