141 messaggi dal 02 novembre 2010
Ciao a tutti...

Sto cercando di utilizzare una textbox, stile facebook, quindi con il suggerimento delle informazioni da inserire.

In precedenza utilizzavo l'AjaxControlToolkit di Asp.NET poi però mi è stato suggerito di utilizzare JQuery.

ho trovato alcuni esempi, però nonostante credessi di aver impostato correttamente tutto il codice; non mi viene richiamato il WebService. Vi posto il mio codice...


Questa è la mia parte Jquery


<script type="text/javascript">
        $(document).ready(function () {
            $(".tb").autocomplete({ 
                source: function (request, response) { 
                    $.ajax({ 
                        type: "POST", 
                        contentType: "application/json; charset=utf-8",
                        url: "AutoCompleteDataSource.asmx/SuggestedCustomers", 
                        dataType: "json", 
                        data: "{'Value':'" + request.term + "'}", 
                        success: function (data) { 
                                response($.map(data.d, function (item) { 
                                    return { 
                                        label: item.Name + '(' + item.Value + ')', 
                                        value: item.Name 
                                    } 
                                })) 
                        } 
                    }); 
                }, 
                minLength: 2, 
                select: function (event, ui) { 
                     
                }, 
                open: function () { 
                    $(this).removeClass("ui-corner-all").addClass("ui-corner-top"); 
                }, 
                close: function () { 
                    $(this).removeClass("ui-corner-top").addClass("ui-corner-all"); 
                }, 
                error: function (XMLHttpRequest, textStatus, errorThrown) { 
                    alert(textStatus); 
                } 
            }); 
 
        }); 
    </script>


Questa la mia TextBox
<asp:TextBox ID="AutoCompleteText" runat="server" CssClass="tb"></asp:TextBox>


e infine il mio Web Method del Web Service...



[WebMethod]
    public string[] SuggestedCustomers(string q)
    {
        connStr = ConfigurationManager.ConnectionStrings["ACOConnectionString"].ConnectionString;
        conn = new SqlConnection(connStr);

        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = "SELECT idGalleria, Titolo FROM Galleria WHERE Titolo LIKE '%" + q +"%'";
        cmd.Connection = conn;
        List<string> items = new List<string>();
        try
        {
            conn.Open();
            SqlDataReader reader = cmd.ExecuteReader();
            // Add items into string array
            
            while (reader.Read())
            {

                items.Add(reader["idGalleria"].ToString() + " " + reader["Titolo"].ToString());
            }

            // Return array
            return items.ToArray();
        }
        catch (Exception ex)
        {
            items.Add(ex.ToString());
            return items.ToArray();
        }
    }





Forse mi manca ancora qualche pezzo di codice da inserire?
141 messaggi dal 02 novembre 2010
Allora...

nonostante la chiamata ajax funzioni, non riesco ad accedere al webservice.

Infatti impostando un break point al suo interno, vedo che non ne ottengo l'esecuzione. Se vado a verificare la chiamata con firebug, sulla scheda console... ottengo come risposta l'errore 500.

Da cosa potrebbe dipendere?
438 messaggi dal 08 aprile 2009
New web config hai aggiunto le righe che ti ermettono di richiamare i servizi?
438 messaggi dal 08 aprile 2009
esempio web.config
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
        <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
          <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
          <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
          <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
        </sectionGroup>
      </sectionGroup>
    </sectionGroup>



<system.webServer>
    <httpErrors errorMode="Detailed"/>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
      <remove name="ScriptModule"/>
      <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </modules>
    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated"/>
      <remove name="ScriptHandlerFactory"/>
      <remove name="ScriptHandlerFactoryAppServices"/>
      <remove name="ScriptResource"/>
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </handlers>
  </system.webServer>
141 messaggi dal 02 novembre 2010
Uhm... però in teoria non dovrei avere questo problema in locale... giusto? Cioè per il metodo posto in locale dovrei essere coperto...
438 messaggi dal 08 aprile 2009
No devi mettere queste configurazioni del web.config anche in locale.
141 messaggi dal 02 novembre 2010
Ah ok...

ma devo metterle così in modo brutale? Cioè posso fare un copia e incolla "assassino"?
141 messaggi dal 02 novembre 2010
Inserite...

ma niente da fare... :(

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
    In primo piano

    I più letti di oggi

    Media
    In evidenza
    MISC