93 messaggi dal 28 marzo 2004
ciao a tutti.
sembrerà banale ma non riesco a fare una semplice chiamata ajax...
non vogli utilizzare dei controlli del toolkit, ma fare una chiamata ad un metodo tramite un javascript, per poi leggere il risultato....
ho letto come implementare la cosa con un web services, ma non è quello che vorrei fare....
posto il codice:

-------------- default.aspx --------------------

<script type="text/javascript">

function SayHello()
{
Default.Hello(onComplete);
}

function onComplete(result)
{
$get("Text1").value = result;
}

</script>
<asp:ScriptManagerProxy id="ScriptManagerProxy1" runat="server" />
<input id="Button1" type="button" value="button" onclick="SayHello();"/>
<input id="Text1" type="text" />

-------------------------------------------------

-------------- default.aspx.cs --------------------
protected void Page_Load(object sender, EventArgs e)
{

}

[System.Web.Services.WebMethod]
public static string Hello() {
return "Hello world!";
}

-------------------------------------------------


----------------- web.config ---------------------


<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<system.web>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add namespace="AjaxControlToolkit" assembly="AjaxControlToolkit" tagPrefix="ajaxToolkit"/>
</controls>
</pages>

<compilation debug="true">
<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</assemblies>
</compilation>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web>
<system.web.extensions>
<scripting>
<webServices>
<!-- Uncomment this line to customize maxJsonLength and add a custom converter -->
<!--
<jsonSerialization maxJsonLength="500">
<converters>
<add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
</converters>
</jsonSerialization>
-->
<!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
<!--
<authenticationService enabled="true" requireSSL = "true|false"/>
-->
<!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and
writeAccessProperties attributes. -->
<!--
<profileService enabled="true"
readAccessProperties="propertyname1,propertyname2"
writeAccessProperties="propertyname1,propertyname2" />
-->
</webServices>
<!--
<scriptResourceHandler enableCompression="true" enableCaching="true" />
-->
</scripting>
</system.web.extensions>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</handlers>
</system.webServer>
</configuration>
---------------------------------------------------

quando clicco sul pulsante per fare la chiamata al metodo Default.Hello
mi restituisce un errore dicendo che default non è definito,
probabilmente manca solo la registrazione del metodo...ma proprio non ne vado fuori....
mi sapreste dare una mano?

grazie!
3.168 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

2 cose:

1. decora il metodo della pagina con l'attributo ScriptMethod
2. nello scriptmanager imposta la proprietà EnablePageMethods a true.

HTH

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
93 messaggi dal 28 marzo 2004
ciao,
grazie per il suggerimento.
inoltre cercando in rete ho capito che avevo anche sbalgiato la chiamata nel js:

function SayHello()
{
Default.Hello(onComplete);
}

invece di

function SayHello()
{
PageMethods.Hello(onComplete);
}

adesso sono riuscito a farlo andare....
grazie davvero...
mi hai dato un ottimo input per la risoluzione del problema!
93 messaggi dal 28 marzo 2004
ho un altro problema riguardo le chiamate ajax a web method, quindi riprendo il post.

dunque...
ho un javascript che chiama un web method statico, e fin qua tutto ok.
però, dentro a questo web method vorrei modificare il valore di alcuni elementi della pagina (una label, text box, ...) e anche ricaricare un updatePanel però ho degli errori in compilazione, mi dice che

Occorre un riferimento a un oggetto per la proprietà, il metodo o il campo non statico 'spesa.lblTotOggetti'

la Label lblTotOggetti è dentro un updatePanel

e spesa è la mia pagina.

se avete suggerimenti...

grazie
3.168 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

dal metodo statico della pagina chiamato come ws non puoi modificare nulla della pagina lato server. puoi solo elaborare javascript il risultato del metodo ed al limite scatenare l'aggiornamento dell'updatepanel tramite javascript.

HTH

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
22 messaggi dal 18 maggio 2007
Ciao ragazzi, io dal metodo statico vorrei restituire alla funzione javascritp un array di utenti presenti nell'oggetto cache. Purtroppo dal metodo statico sembra che non posso leggere l'oggetto cache, infatti mi da errore in compilazione. Come posso fare a leggere l'oggetto cache dal metodo statico?

[System.Web.Services.WebMethod]
public static string helloWorld()
{
Hashtable utenti_chat = new Hashtable();
utenti_chat = (Hashtable)Cache["utenti_chat"];

string lista_output = "";
foreach (DictionaryEntry de in utenti_chat)
{
lista_output += de.Key.ToString() + "\n";
}
return lista_output;
}

"Quanto piu ci innalziamo, tanto piu piccoli sembriamo a quelli che non possono volare."

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.