• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 337
  • Last Modified:

get service from javascript function

I am trying to design a service that works with the onkeyup instead of the regular asp.textbox changed event.  the following is what I have but I do not know how to conenct the javascript function to the service and get the textbox information.
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
    <script language="javascript" type="text/javascript">
        function getnames() {
            var theName = document.getElementById("txtadmin")
        }
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="BodyContent" Runat="Server">
   
    <table width="100%">
        <tr>
            <td style="height:20px"></td>
        </tr>
        <tr>
            <td align="center">Add Admin:&nbsp;&nbsp;&nbsp;<asp:TextBox ID="txtAdmin" runat="server" Width="260" AutoPostBack="true" 
            AutoCompleteType="DisplayName" onkeyup="javascript:getNames();" />
            <asp:AutoCompleteExtender ID="txtAdmin_AutoCompleteExtender" runat="server" Enabled="True" TargetControlID="txtAdmin" 
            ServiceMethod="FindName" MinimumPrefixLength="0" />
            <asp:TextBoxWatermarkExtender ID="txtAdmin_TextBoxWatermarkExtender" runat="server" Enabled="True" TargetControlID="txtAdmin" 
            WatermarkText="Enter LastName First"/>
            </td>
        </tr>
    </table>
   
</asp:Content>



Partial Class Admin_test
    Inherits System.Web.UI.Page
    <System.Web.Services.WebMethod()> _
    <System.Web.Script.Services.ScriptMethod()> _
    Public Shared Function Findname(ByVal prefixText As String, ByVal count As String) As String()
        Return New AutoComplete().FindName(prefixText, count)
    End Function

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        txtAdmin.Attributes.Add("onKeyup", "javascript(getnames();")
    End Sub
End Class

Open in new window

0
kdeutsch
Asked:
kdeutsch
  • 5
  • 3
1 Solution
 
Miguel OzSoftware EngineerCommented:
Change:
txtAdmin.Attributes.Add("onKeyup", "javascript(getnames();"
to
txtAdmin.Attributes.Add("onKeyup", "getnames()")

Note: Your javascript code is not fully implemented yet, but I suppose you want the above part working.

0
 
kdeutschAuthor Commented:
Ok changed this, but now its giving me an error on my javscript on the sendrequest.

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
    <script language="javascript" type="text/javascript">
        function SendRequest() {
            AutoComplete.FindName('<%=txtAdmin.ClientID%>').value

        function OnComplete(arg) {
            alert(arg)
        }
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="BodyContent" Runat="Server">
   
    <table width="100%">
        <tr>
            <td style="height:20px"></td>
        </tr>
        <tr>
            <td align="center">Add Admin:&nbsp;&nbsp;&nbsp;<asp:TextBox ID="txtAdmin" runat="server" Width="260" AutoPostBack="true"
            AutoCompleteType="DisplayName" />
            <asp:AutoCompleteExtender ID="txtAdmin_AutoCompleteExtender" runat="server" Enabled="True" TargetControlID="txtAdmin"
            ServiceMethod="FindName" MinimumPrefixLength="0" />
            <asp:TextBoxWatermarkExtender ID="txtAdmin_TextBoxWatermarkExtender" runat="server" Enabled="True" TargetControlID="txtAdmin"
            WatermarkText="Enter LastName First"/>
            </td>
        </tr>
    </table>
   
</asp:Content>
0
 
Miguel OzSoftware EngineerCommented:
Glad to solve your question.
Regarding your post question on js implementation. Please post the exact error message and any reference code that you are using to implement this service.
0
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

 
kdeutschAuthor Commented:
Hi,

It throws an error when i start to type in the textbox and gives me
Object expected and it highlights the SendRequest of the onkeyup

this is my code behind
 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        txtAdmin.Attributes.Add("onKeyup", "SendRequest()")
    End Sub


HTML
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
    <script language="javascript" type="text/javascript">
        function SendRequest() {
            AutoComplete.FindName('<%=txtAdmin.ClientID%>').value

        function OnComplete(arg) {
            alert(arg)
        }
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="BodyContent" Runat="Server">
   
    <table width="100%">
        <tr>
            <td style="height:20px"></td>
        </tr>
        <tr>
            <td align="center">Add Admin:&nbsp;&nbsp;&nbsp;<asp:TextBox ID="txtAdmin" runat="server" Width="260" AutoPostBack="true"
            AutoCompleteType="DisplayName" />
            <asp:AutoCompleteExtender ID="txtAdmin_AutoCompleteExtender" runat="server" Enabled="True" TargetControlID="txtAdmin"
            ServiceMethod="FindName" MinimumPrefixLength="0" />
            <asp:TextBoxWatermarkExtender ID="txtAdmin_TextBoxWatermarkExtender" runat="server" Enabled="True" TargetControlID="txtAdmin"
            WatermarkText="Enter LastName First"/>
            </td>
        </tr>
    </table>
   
</asp:Content>
0
 
kdeutschAuthor Commented:
The service sits on a code behind page in my APp_code folder called autoComplete.vb which goes through a autocomplete.asmx file.

Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports ReadinessCommon
Imports System.Data
Imports System.Data.SqlClient


' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
<System.Web.Script.Services.ScriptService()> _
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class AutoComplete
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Function FindName(ByVal prefixText As String, ByVal count As String) As String()
        Dim items As New List(Of String)

        sql = "SELECT strFullname FROM WorsDotNet.dbo.tblUser WHERE strFullName like '%" & prefixText & "%' ORDER BY strFullName ASC"

        myDataTable = New DataTable
        myDataTable = getData(sql)

        If myDataTable.Rows.Count > 0 Then
            For Each dRow As DataRow In myDataTable.Rows
                items.Add(dRow(0).ToString)
            Next
        End If

        Return items.ToArray
    End Function
0
 
Miguel OzSoftware EngineerCommented:
Uhmm, I will change code as follows:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        txtAdmin.Attributes.Add("onKeyup", "SendRequest(this)")
    End Sub


HTML
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
    <script language="javascript" type="text/javascript">
        function SendRequest(txtObj) {
           var results = AutoComplete.FindName(txtObj.id);
//Consume results if (results != null) then use it.
        }
    </script>
</asp:Content>
//All other code remain the same

Note: I notice that you are missing the scriptmanager in your html markup
<asp:ScriptManager ID="ScriptManager1" runat="server"
EnablePageMethods = "true">
Any AJAX page requires it, otherwise js may not work properly.

0
 
kdeutschAuthor Commented:
mas_oz2003:

The script manager sits in my sitemaster along with all the service requests, its easier than to put on every page.

Ok getting a bunch more errors, but the errors are ones I think I can handle.
0
 
kdeutschAuthor Commented:
thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

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