Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1216 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Communiquer Javascript -> .NET

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Communiquer Javascript -> .NET

n°1601642
the big be​n
Posté le 21-08-2007 à 11:32:46  profilanswer
 

Bonjour,
 
J'ai un array en javascript contenant tout les ID des objets selectionnées et j'aurais voullu savoir si il y avait une solution élégante pour récuréer ce tableau dans mon code asp.net
 
D'avance merci
 
Ben

mood
Publicité
Posté le 21-08-2007 à 11:32:46  profilanswer
 

n°1601649
moi23372
Posté le 21-08-2007 à 11:53:10  profilanswer
 

personnellement je ne crois pas qu'il soit possible d'avoir une interraction entre asp.net et javascript.  
Par contre entre html et asp.net cela est possible.  
 
Donc on pourrait imaginer que ton array soit copié dans un hiddenField par exemple.  
 
Sinon pour tes objets sélectionné, es-tu sure de ne pas pouvoir les récupérer en asp.net plutot qu'en javascript?  
 
s'il s'agit d'html, il suffit de les marquer runat="server" pour y avoir accès en asp.net dans le code behind.

n°1601662
turinatas
Posté le 21-08-2007 à 12:27:55  profilanswer
 

Salut,
Ce n'est pas possible :
 
ASP: s'execute coté serveur
Javascript : s'execute coté client
 
Tu peux peut être avoir malgres tout une piste en te penchant sur l'Ajax, je crois qu'il y a une fonction nommée "XMLHttpRequest", en tout cas cela existe pour appeler du php donc il ny' a pas de raison.
 
Tu devrais trouver pas mal d'exemple sur le net ;)
 

n°1601663
turinatas
Posté le 21-08-2007 à 12:28:12  profilanswer
 
n°1601668
the big be​n
Posté le 21-08-2007 à 12:48:20  profilanswer
 

Merci c est sur ces 2 pistes que j'était partit pour l'instant je vais le faire avec un hiddenfield et ensuite j'essaierai de l'adapter en AJAX  
 
Merci à vous

n°1603168
MagicBuzz
Posté le 23-08-2007 à 17:43:05  profilanswer
 

Ajax est intégralement intégré au FrameWork 3.0
 
Par contre dans le 2.0 il me semble que c'est 100% à la main. Ceci dit, c'est la solution vers laquel il me semble le plus judicieux de s'orienter.
 
Edit : Ah si, il est aussi présent dans la 2.0 sous forme d'un module additionnel "Microsoft Ajax  Extensions 1.0"
 
Là ils disent comment s'en servir avec PHP ( :heink: ) en cherchant bien tu dois pouvoir trouver comment faire avec ASP.NET ;)
http://www.microsoft.com/france/ms [...] c_php.mspx


Message édité par MagicBuzz le 23-08-2007 à 17:43:47
n°1603255
MagicBuzz
Posté le 23-08-2007 à 21:04:44  profilanswer
 

Je viens de tester Atlas (c'est ça le nom des extensions Ajax pour .NET) et ça marche de la balle :)
 
Déjà, faut le télécharger (sisi c'est vrai :D) à moins que tu n'aie Visual Studio 2008, auquel cas c'est intégré dans .NET 3.0
http://download.microsoft.com/down [...] tSetup.msi
 
Tu installes la bête (avec VS fermé évidement).
Dans le doute, installe-le sur le poste de dev (obligatoirement) et sur le serveur (ça pourrait s'avérer utile vu que ça ajoute des namespace à System.UI)
 
Maintenant, on y va !
Default.aspx :

Code :
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MainSite._Default" %>
  2. <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
  3.    Namespace="System.Web.UI" TagPrefix="asp" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  5. <html>
  6. <head runat="server">
  7.    <title>Untitled Page</title>
  8. </head>
  9. <body>
  10.    <form id="form1" runat="server">
  11.        <asp:ScriptManager ID="ScriptManager1" runat="server" />
  12.        <asp:Timer ID="Timer1" runat="server" Interval="2000" OnTick="Timer1_Tick" />
  13.        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
  14.            <Triggers>
  15.                <asp:AsyncPostBackTrigger ControlID="Timer1" />
  16.            </Triggers>
  17.            <ContentTemplate>
  18.                Plop : <asp:Label ID="Label1" runat="server"></asp:Label>
  19.            </ContentTemplate>
  20.        </asp:UpdatePanel>
  21.        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
  22.    </form>
  23. </body>
  24. </html>


 
Default.aspx.cs :

Code :
  1. using System;
  2. using System.Web;
  3. using System.Web.UI;
  4. using System.Web.UI.WebControls;
  5.  
  6. namespace MainSite
  7. {
  8.    public partial class _Default : System.Web.UI.Page
  9.    {
  10.        protected void Page_Load(object sender, EventArgs e)
  11.        {
  12.        }
  13.  
  14.        protected void Timer1_Tick(object sender, EventArgs e)
  15.        {
  16.            if (TextBox1.Text != string.Empty)
  17.            {
  18.                Label1.Text = string.Format("=> {0} <=", TextBox1.Text);
  19.            }
  20.            else
  21.            {
  22.                Label1.Text = "Vide";
  23.            }
  24.        }
  25.    }
  26. }


 
Et le Web.Config (parceque sinon ça marche pas). On le trouve dans le répertoire d'installation d'Altas.

Code :
  1. <?xml version="1.0"?>
  2. <configuration>
  3.  <configSections>
  4.    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
  5.      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
  6.        <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
  7.        <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
  8.          <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" />
  9.          <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
  10.          <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
  11.        </sectionGroup>
  12.      </sectionGroup>
  13.    </sectionGroup>
  14.  </configSections>
  15.  
  16.  <system.web>
  17.    <pages>
  18.      <controls>
  19.        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  20.      </controls>
  21.    </pages>
  22.    <!--
  23.          Set compilation debug="true" to insert debugging
  24.          symbols into the compiled page. Because this
  25.          affects performance, set this value to true only
  26.          during development.
  27.    -->
  28.    <compilation debug="false">
  29.      <assemblies>
  30.        <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  31.      </assemblies>
  32.    </compilation>
  33.  
  34.    <httpHandlers>
  35.      <remove verb="*" path="*.asmx"/>
  36.      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  37.      <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"/>
  38.      <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"/>
  39.    </httpHandlers>
  40.  
  41.    <httpModules>
  42.      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  43.    </httpModules>
  44.  </system.web>
  45.  <system.web.extensions>
  46.    <scripting>
  47.      <webServices>
  48.        <!-- Uncomment this line to customize maxJsonLength and add a custom converter -->
  49.        <!--
  50.      <jsonSerialization maxJsonLength="500">
  51.        <converters>
  52.          <add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
  53.        </converters>
  54.      </jsonSerialization>
  55.      -->
  56.        <!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
  57.        <!--
  58.        <authenticationService enabled="true" requireSSL = "true|false"/>
  59.      -->
  60.  
  61.        <!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
  62.           and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and
  63.           writeAccessProperties attributes. -->
  64.        <!--
  65.      <profileService enabled="true"
  66.                      readAccessProperties="propertyname1,propertyname2"
  67.                      writeAccessProperties="propertyname1,propertyname2" />
  68.      -->
  69.      </webServices>
  70.      <!--
  71.      <scriptResourceHandler enableCompression="true" enableCaching="true" />
  72.      -->
  73.    </scripting>
  74.  </system.web.extensions>
  75.  
  76.  <system.webServer>
  77.    <validation validateIntegratedModeConfiguration="false"/>
  78.    <modules>
  79.      <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  80.    </modules>
  81.    <handlers>
  82.      <remove name="WebServiceHandlerFactory-Integrated" />
  83.      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
  84.           type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  85.      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
  86.           type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  87.      <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" />
  88.    </handlers>
  89.  </system.webServer>
  90. </configuration>


 
Comme tu le vois, dans le ici j'ai simplement fait un bête timer côté client, qui se lance toutes les 2 secondes.
Et il va afficher ce que t'as écrit dans la textbox dans un panel juste en dessous, en faisant un peu de mise en forme.
 
Le tout est 100% codé en C#, pas une ligne de JS. Tout est donc 100% automatisé pour toi.
 
Et ça marche !
 
L'exemple sur lequel je me suis basé :
http://msdn2.microsoft.com/en-us/l [...] S.90).aspx
 
On voit le truc parler de .NET 3.0
Mais moi j'ai VS2005 Express, donc du 2.0, et ça marche aussi, à condition d'installer le truc que je t'ai mis en lien au dessus.

n°1603363
the big be​n
Posté le 24-08-2007 à 09:06:20  profilanswer
 

Merci a tous en fait de mon coté j'ai également trouvé une petite video ici: http://asp.net/learn/ajax-videos/video-79.aspx  
 
Et donc j ai fait comme ca c est assez simple aussi.  
Le principe est d'avoir nu webservice coté c# et un JS vraiment tout bete de l'autre coté mais je me base aussi sur le ajax toolkit...

n°1603373
MagicBuzz
Posté le 24-08-2007 à 09:33:44  profilanswer
 

Ben la solution d'Atlas est quand même mieux, dans la mesure ou c'est totalement transparent niveau dev : pas de JS à débuguer, la panade... Même pas besoin d'écrire le code qui te permet d'aller lire les variables dans ton formulaire, ni le code pour mettre à jour la page. Franchement y'a pas photo, le jour où j'en ai besoin, j'utiliser uniquement Atlas.


Message édité par MagicBuzz le 24-08-2007 à 09:34:44

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Communiquer Javascript -> .NET

 

Sujets relatifs
[VB.NET] Application des acls sur des dossiersjavascript sur bouton browse
Séparer les milliers en javascript[VB.Net] Ouverture et fermeture de forms...
Problème Vb.Net TCP/IPjavascript et acrobat 8.0
php et javascriptphpund javascript
appel javascript impossible dans page appelée en ajax[JSF] Manipulation du javascript d'une jsp depuis le bean managé
Plus de sujets relatifs à : Communiquer Javascript -> .NET


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR