none
JqueryMobile et Asp.Net RRS feed

  • Question

  • Bonjour,je demande conseil concernant Asp Net et JqueryMobile

    Je désire récupérer les données d'un formulaire JqueryMobile à l'intérieur d'une WebApp Asp.Net.

    Pouvez vous me donner quelques conseils concernant ce domaine,car je ne pense pas que ce soit trés simple,malgré que je connaisse la procédure en Php via Ajax.

    Une Application Mvc serai peut ètre plus adaptée?

    Merci pour vos réponses



    lo

    jeudi 16 février 2012 01:59

Réponses

Toutes les réponses

  • Je désire récupérer les données d'un formulaire JqueryMobile à l'intérieur d'une WebApp Asp.Net.

    Vous pouvez récupérer les données du formulaire JQueryMobile à l'intérieur de l'application Web ASP .NET en utilisant jQuery, Ajax et JSON. Je vous invite à jeter un coup d'oeil à cet article.

    My blog

    Whether you’re a construction worker, a forum moderator, or just someone that likes helping people. I think these guidelines can be helpful in keeping you helpful when being helpful.

    jeudi 16 février 2012 12:02
    Auteur de réponse
  • Merci de votre réponse,je vais lire attentivement  ce thread,je reviendrai pour un retour d'expérience.

    Lorsque j'ai parcouru le net afin de trouver des informations concernant la gestion des formulaires Jquery au sein d'asp Net.

    Pas mal de réponses m'orientais vers Mvc,comme ce thread 

    http://forum.jquery.com/topic/does-asp-net-webforms-work-well-with-jquery-mobile   

    Encore merci,a +++

    Laurent


    lo


    • Modifié BioDev jeudi 16 février 2012 12:23
    jeudi 16 février 2012 12:23
  • Vous n'êtes pas obligé de passer par ASP .NET MVC, vous pouvez mettre en place la logique avec ASP .NET aussi.

    My blog

    Whether you’re a construction worker, a forum moderator, or just someone that likes helping people. I think these guidelines can be helpful in keeping you helpful when being helpful.

    jeudi 16 février 2012 12:54
    Auteur de réponse
  • Je comprends beaucoup mieux,

    J'ai trouvé un article interessant a ce sujet :http://www.west-wind.com/weblog/posts/2010/Sep/07/Using-jQuery-to-POST-Form-Data-to-an-ASPNET-ASMX-AJAX-Web-Service    

    Bien à vous


    lo

    jeudi 16 février 2012 21:08
  • Voici un autre article qui montre comment consommer un Webservice REST WCF Cross Domain en utilisant JQuery et JSONP.

    My blog

    Whether you’re a construction worker, a forum moderator, or just someone that likes helping people. I think these guidelines can be helpful in keeping you helpful when being helpful.

    jeudi 16 février 2012 22:40
    Auteur de réponse
  • Je vois,

    Donc récupérer les donées dE mes formulaires JqueryMobile se ferai via l'appel d'un web service si je comprends bien?

    Un programme WinForm par exemple chargé d'évoque la méthode du WebService?

    Je comprends les manipultions Ajax et Json,mais j'aimerai choisir le meilleur moyen pour stocker mes données,san spour autant passer par une Db.

    ?????

    Merci


    lo

    vendredi 17 février 2012 16:43
  • Si vous voulez stocker les données de votre application, il faut spécifier les points listés ci-dessous afin de déterminer quelle architecture sera utilisée pour le stockage.

    1. Quelle est la définition du modèle des données que vous voulez stocker ?
    2. Comment évolue la quantité de stockage des données ?
    3. Est-ce que les données que vous voulez stocker doivent être accessibles depuis des serveurs client/distants ?
    4. S'il y a beaucoup de données, est-ce que les requêtes de récupération des données doivent être le plus optimum possible avec les technos disponibles actuellement (sqlserver, cassandra ...) ?
    5. Scalabilité, évolutivité, maintenance, coût (gratuit, payant) de l'architecture de stockage ?
    6. Quelles sont les technos qui vont s'interfacer avec vos données (.NET apparamment) ?

    Ignorer l'option de DB dès le début n'est pas une bonne approche car c'est plus votre besoin qui définira si vous devez utiliser une DB, du XML, des fichiers à plat ...


    My blog

    Whether you’re a construction worker, a forum moderator, or just someone that likes helping people. I think these guidelines can be helpful in keeping you helpful when being helpful.

    vendredi 17 février 2012 19:56
    Auteur de réponse
  • 1:Je dirai relationnel

    2:Elle évoluera comme un db sql

    3:oui

    4:Oui Sql Server si une db est préférable 

    5:de préférence non payant

    6:J'utilise JqueryMobile/Phone Gap/Asp Net

    Les données de mes formulaires,sont "classique des champs "nom" "prénom"

    J'aurai aimé stocké ces données dans un fichier xml,je suis occupé a analyser mon projet a ce niveaux la

    Je me documente sur Mvc



    lo





    • Modifié BioDev samedi 18 février 2012 03:05
    samedi 18 février 2012 02:30
  • Dans ce cas, la solution qui correspond le plus à votre besoin correspond à l'utilisation d'un plugin JQuery que vous utiliserai côté client afin d'ajouter/modifier/supprimer des entrées dans votre architecture de stockage des données.

    Je vous ai listé ci-dessous une liste de plugin que vous pouvez utiliser:

    Personnelement, je favorise l'utilisation d'une architecture nosql. Vous pouvez utiliser Apache Cassandra et exposer un service Web JSON que vous pouvez appeler côté client en Ajax et jQuery.

    Vous avez maintenant tous les outils qu'il faut pour effectuer votre développement.

    Merci de marquer les réponses à vos questions dans ce thread pour que les gens se posant les mêmes questions puissent trouver facilement les réponses adéquates.


    My blog

    Whether you’re a construction worker, a forum moderator, or just someone that likes helping people. I think these guidelines can be helpful in keeping you helpful when being helpful.

    • Marqué comme réponse BioDev samedi 18 février 2012 22:02
    • Non marqué comme réponse BioDev mardi 21 février 2012 20:33
    • Marqué comme réponse Ciprian Duduiala mercredi 22 février 2012 09:08
    samedi 18 février 2012 14:20
    Auteur de réponse
  • Merci pour vos lien fort iteressant.

    Justement aprés quelqeues exercices,j'obtient une erreur portant sur la mise a jour des données.

    "Impossible de mettre à jour l'EntitySet « Client_Form » parce qu'il comprend un DefiningQuery et qu'il n'existe dans l'élément <ModificationFunctionMapping> aucun élément <InsertFunction> pour la prise en charge l'opération actuelle."

    J'ai choisit de stocker mes données de formulaire dans une db,j'utilise donc l'Entity Framework afin de générer le fichier "edmx"

    J'utilise un Handler pour communiquer avec l'Entity Framework comme ceci:

     public class Insert_Client : IHttpHandler
        {
            private Smtg_WebAppEntities_Pro _dataContext = new Smtg_WebAppEntities_Pro();
            public void ProcessRequest(HttpContext context)
            {
              
                var prenom = context.Request["Prenom"];
                var Societe = context.Request["Societe"];
                var AdresseMail = context.Request["Adresse_Mail"];
                var Telephone = context.Request["Telephone"];
                var Message = context.Request["Message"];
                //// Create Client to insert
                var clientToInsert = new Client_Form { Nom = nom,Prenom=prenom,Societe=Societe,Adresse_Mail=AdresseMail,Telephone=Telephone,Message=Message };
                //// Save new Client to DB
                _dataContext.AddToClient_Form(clientToInsert);
                _dataContext.SaveChanges();
                ////return success
                context.Response.Write("Success");
            }
    
    
            public bool IsReusable
            {
                get
                {
                    return true;
                }
            }
        }

    Voici ma page Aspx comprenant le code pour le traitement d el'évenement,renvoyant vers une fonction javascript (Json)

    
    <!DOCTYPE html>
    <html>
    <head>
    <title>Solutions Mobile</title>
        <meta name=viewport content="user-scalable=no,width=device-width" />
        <!--Ceci est pour l iphone-->
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <!--Affichage d'une image lors du démarrage de l'application sur Iphone-->
       <!-- <link rel="apple-touch-startup-image" href=".png" />-->
         <!--Icone sur Iphone toujours placé en dernier-->
    <!--    <link rel="apple-touch-icon" href=".png" />-->


    <!--Ceci est la partie theme -->
    <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>


    <link rel="stylesheet" href="themes/Smtg.min.css" />
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile.structure-1.0.1.min.css" />




     <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js" type="text/javascript"></script> 


            
    </head>


    <body>
       
    <!--Si je place un id je permet la navigation de fenetre a fenetre-->
    <div data-role="page" id="Home" data-add-back-btn=true data-inset=true data-theme=a>
     <form>
    <div data-role="header">
    <br/>
    <br/>
        <div style="margin- margin- width:100%; text-align:center;"><img alt="Token" src="img/smtg.png" 
                style="width: 336px;" /></div>
    <br/>
    <br/>
    </div>


    <div data-role="content">


       <span>Nom:</span>
        <input type=text value="" />
         <br />
         <span>Prénom:</span>
        <input type=text value="" />
         <br />
         <span>Société:</span>
        <input type=text value="" />
         <br />
       <span>Adresse Mail:</span>
        <input type=text value="" />
         <br />
          <span>Telephone:</span>
        <input type=text value="" />
       <%--  <br />
        <span>Choisissez un type de Solution</span>
        <!--Ici je place une liste de selection multiple!!   "multiple=multiple"   -->
        <select data-native-menu=false >
       
        <option value=1>Solution Web</option>
        <option value=2>Solution Mobile</option>
        
        
        
        </select>--%>
        <br />
        
        
       
        
        <span>Nous écrire</span>
    <input type=text value="" />
         <br />
    </form>
        
    <a href=# data-role=button data-icon=plus data-iconpos=left id=btnAdd>Envoyez le Formulaire</a>
            <script type="text/javascript">


                $("#btnAdd").click(function () {
                    $.post("Insert_Client.ashx", $("form").serialize(), insertCallback);
                });


                function insertCallback(result) {
                    if (result == "success") {
                        alert("Client added!");
                    } else {
                        alert("Could not add Client!");
                    }
                }
     
     
    </script>
           
    </div><!-- /content -->
       
        <!--Ceci est le menu dans le footer-->
    <div data-role="footer" data-position=fixed>
    </div><!-- /footer -->
    </div><!-- /page -->
            
    <//body>
    </html>
    Lorsque j'éxécute l'application et soumet les informations vers ma base de donnée,j'obtient cet erreur,precisement dans le handler lors de la sauvegarde des données en dernières ligne!! );
    _dataContext.SaveChanges();

    Impossible de mettre à jour l'EntitySet « Client_Form » parce qu'il comprend un DefiningQuery et qu'il n'existe dans l'élément <ModificationFunctionMapping> aucun élément <InsertFunction> pour la prise en charge l'opération actuelle.

    Bien à vous,




    lo



    • Modifié BioDev mardi 21 février 2012 20:41 reparsing
    mardi 21 février 2012 20:10
  • Bonsoir,

    Est-ce que vous avez bien déclaré une clé primaire pour la table Client_Form ?

    Il faut déclarer une clé primaire auto-incrémentale et mettre à jour le modèle.

    Remarque. Il faut mettre le DataContext dans un using à l'intérieur de la méthode ProcessRequest.

    Cordialement,


    My blog

    Whether you’re a construction worker, a forum moderator, or just someone that likes helping people. I think these guidelines can be helpful in keeping you helpful when being helpful.

    mardi 21 février 2012 22:38
    Auteur de réponse
  • Ok pour la clé primaire et l'auto incrémentation.

    Lorsque je test l'application le handler fonctionne,je tombe désormais en erreur dans ma méthode "insertCallback" Default.aspx

    <a href=# data-role=button data-icon=plus data-iconpos=left id=btnAdd>Envoyez le Formulaire</a>
            <script type="text/javascript">


                $("#btnAdd").click(function () {
                    $.post("Insert_Client.ashx", $("form").serialize(), insertCallback);
                });


                function insertCallback(result) {
                    if (result == "success") {
                        alert("Client added!");
                    } else {
                        alert("Could not add Client!");
                    }
                }

    cependant pour le DataContext,je ne vois pas trop.

    Dans les différents tutoriaux que vous m'avez fournit,j'observe ceci:

    using System.Web;
     
    namespace WebApplication1 {
        /// <summary>
        /// Inserts a new movie into the database
        /// </summary>
        public class InsertMovie : IHttpHandler {
     
            private MoviesDBEntities _dataContext = new MoviesDBEntities();
     
            public void ProcessRequest(HttpContext context) {
                context.Response.ContentType = "text/plain";
     
                // Extract form fields
                var title = context.Request["title"];
                var director = context.Request["director"];
     
                // Create movie to insert
                var movieToInsert = new Movie { Title = title, Director = director };
     
                // Save new movie to DB
                _dataContext.AddToMovies(movieToInsert);
                _dataContext.SaveChanges();
     
                // Return success
                context.Response.Write("success");
            }
     
            public bool IsReusable {
                get {
                    return true;
                }
            }
     
     
     
        }
    }


    lo


    • Modifié BioDev mercredi 22 février 2012 03:00
    mercredi 22 février 2012 02:34
  • Bonjour,

    Pour le DataContext:

    using System.Web;
     
    namespace WebApplication1 {
        /// <summary>
        /// Inserts a new movie into the database
        /// </summary>
        public class InsertMovie : IHttpHandler {
     
            public void ProcessRequest(HttpContext context) 
            {
               using(MoviesDBEntities _dataContext = new MoviesDBEntities())
               {
                context.Response.ContentType = "text/plain";
     
                // Extract form fields
                var title = context.Request["title"];
                var director = context.Request["director"];
     
                // Create movie to insert
                var movieToInsert = new Movie { Title = title, Director = director };
     
                // Save new movie to DB
                _dataContext.AddToMovies(movieToInsert);
                _dataContext.SaveChanges();
     
                // Return success
                context.Response.Write("success");
              }
            }
     
            public bool IsReusable {
                get {
                    return true;
                }
            }
     
     
     
        }
    } 


    My blog

    Whether you’re a construction worker, a forum moderator, or just someone that likes helping people. I think these guidelines can be helpful in keeping you helpful when being helpful.

    mercredi 22 février 2012 08:39
    Auteur de réponse
  •  

    Bonjour, BioDev,

    Dans l’étiquette sur les forums MSDN on vous demande de poster une nouvelle question dans un thread nouveau pour éviter avoir des longs threads difficiles à suivre. En plus, la communauté  peut profiter facilement de certaines solutions si les threads sont plus courts.

    Vu que dans la question initiale vous avez demandé quelques conseils et maintenant on discute une erreur apparue dans une application concrète, je vais marquer les réponses utiles. Vous pouvez continuer la discussion sur ce thread si vous voulez, mais svp ne démarquez pas les réponses et essayez ouvrir une question nouvelle si le sujet discuté est loin de la question initiale.

    Merci de votre compréhension et collaboration.

    Bonne journée,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    mercredi 22 février 2012 09:07
  • Message recu!

    Bonne journée aussi!


    lo

    jeudi 1 mars 2012 21:31