IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

Memo Devexpress asp.net MVC 3


Sujet :

ASP.NET MVC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par défaut Memo Devexpress asp.net MVC 3
    Bonjour,

    Je réalise un projet en asp.net mvc3 en utilisant les composants devexpress version 12.1.

    Dans ma vue razor j'ai un rondpanel dans lequel j'ai un memo et deux boutons ("save" et "annuler").

    Mon mémo est bindé sur une methode static qui récupère le contenu à afficher (ça fonctionne).

    Je voudrais passer, lors de l'appuie sur un bouton, le contenu de mon memo à mon controller.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    @Html.DevExpress().RoundPanel(settings =>
    			{
    				settings.Name = "rpCommentaire";
    				settings.HeaderText = "Commentaire";
    				settings.ShowHeader = true;
    				settings.View = DevExpress.Web.ASPxRoundPanel.View.Standard;
    				settings.Width = Unit.Percentage(100);
    				settings.SetContent(() =>
    										{
    											@Html.DevExpress().Memo(s =>
    																		{
    																			s.Name = "mmCommentaire";
    																			s.ClientEnabled = true;
    																			s.ControlStyle.ForeColor = Color.Black;
    																			s.Width = Unit.Percentage(100);
    																		}).Bind(DataProvider.GetCommentaireCompte(ViewBag.idCompte)).GetHtml();
     
                                                ViewContext.Writer.Write("<p>&nbsp;</p>");
     
    											@Html.DevExpress().Button(s =>
    																	            {
    																	                s.Name = "btSave";
    																	                s.Text = "Sauver";
    																	                s.RouteValues = new {Controller = "Compte", Action = "MAJCommentaire", commentaire = ??????};
                                                                                    }).GetHtml();
                                            });
    			}).GetHtml()
    Merci d'avance

  2. #2
    Membre chevronné

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Par défaut
    Hello,

    Si tu trouves une solution simple, donne-nous la !!!
    Perso, j'ai utilisé des composants DevExpress sous MVC, et le problème, c'est qu'apparemment, les ingénieurs DevExpress ont oublié que dans MCV les données d'un formulaire sont récupérées de façon simplissime via le "name" du contrôle html...
    J'ai donc été obligée (pour pas me faire trop ch...) de créer une petite fonction javascript qui modifie le name du contrôle qui contient la valeur à retourner au chargement du contrôle (je sais, c'est pas bien, mais j'avais pas envie d'utiliser leur usine à gaz, parce qu'il existe une usine à gaz qui permet de récupérer les valeurs !)
    Si ça t'intéresse, je peux regarder lundi au boulot (parce que j'ai pas envie de réfléchir trop cet après-midi )

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par défaut
    Merci de ta réponse.

    J'ai réussi à bidouiller un peu.
    Par contre j'ai une question, je passe aussi par du javascript pour récupérer mes données et je voulais savoir si on peut utiliser le "result" de la fonction javascript dans les composants devexpress ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function Grp3Loads(s, e) {
    		    $.ajax({
    		        type: "POST",
    		        url: "/Compte/InitInfoGeneralBloc3", // the URL of the controller action method
    		        data: null, // optional data
    		        success: function (result) {
    		            datab3 = result;
    		        },
    		        error: function (req, status, error) {
    		            // do something with error   
    		        }
    		    });
    		}
    Je retourne bien mes valeurs mais je vois pas comment me servir du result.

    Merci d'avance.

  4. #4
    Membre chevronné

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Par défaut
    Ben je sais pas, tu veux en faire quoi des données récupérées ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par défaut
    En faite j'ai des textbox que j'ai groupé dans des roundpanels.

    Je veux charger les données de ces "groupes" et pouvoir les modifier en enregistrant les modifs sans recharger la page en entier mais juste le groupe en cours de modifs.

    La création et l'utilisation du Model me pose pas de soucis mais l'utilisation des composant de devexpress me donne envi de me pendre

    Je suis un peu perdu

  6. #6
    Membre chevronné

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Par défaut
    En fait, je me suis un peu enflammée ce week-end : les mémos DevExpress fonctionne correctement (c'est avec les ComboBox qu'il y a quelques problèmes).

    Donc pour répondre à ta question : pour passer des infos à ton controller, il suffit de mettre un formulaire dans ta page .cshtml qui englobe les mémos (faut faire du HTML quoi...).

    Pour cela 2 solutions :
    - Méthode classique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @using (Html.BeginForm())
    {
                        // ... ici le roundpanel
    }
    - Méthode Ajax (en ajoutant des références aux fichiers js gérant Ajax, moi j'utilise la librairie jquery, ça marche très bien : jquery.unobtrusive-ajax.min.js) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     @using (Ajax.BeginForm(
                        "ActionName",
                        "ControllerName",
                        "RouteValues",
                        new AjaxOptions { 
                            HttpMethod = "POST", 
                            OnComplete = "evalResponseFunction", 
                            OnFailure = "failResponseFunction", 
                            UpdateTargetId = "updateTargetId", 
                            InsertionMode = InsertionMode.Replace)
                    {
                        // ... ici le roundpanel
                    }

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par défaut
    Le probleme du begin form c'est que quand je passe mes données au controller et que celui ci me revoie une partialview, ça me recharge la page en mettant la partialview retournée et seulement cette vue.

    Donc je le commence avec 5 partials view pour faire ma page puis lors du begin form j'ai plus qu'une partial view

    Je désespère un peu avec devexpress :'(

  8. #8
    Membre chevronné

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Par défaut
    oups, j'aurais du préciser que dans ton cas, vu que tu veux transférer et récupérer des vues partielles, il faut utiliser la deuxième solution : Ajax.BeginForm

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par défaut
    Merci pour le conseil

    J'ai un peu (beaucoup) changé mon code.

    Sais-tu si dans l’évènement du clic d'un bouton devexpress on peut passer le model ?

    Voici la ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @Html.DevExpress().Button(settings =>
    {
       settings.Name = "bloc1Save";
       settings.Text = "Enregistrer";
       settings.ClientSideEvents.Click = "function (s, e) { Bloc1Save1Click(" + Model + "); }";
       settings.ClientVisible = false;
    }).GetHtml();
    et le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function Bloc1Save1Click(s,e) {
    	alert(e);
    }
    Or quand j'appuis sur le bouton il se passe rien

    Donc si tu sais comment faire passer un objet (Model) vers une fonction javascript je suis preneur ^^

    En tout cas merci de ton aide.

  10. #10
    Membre chevronné

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Par défaut
    Oula ! j'ai l'impression que tu mélanges côté client /côté serveur...
    Pourquoi veux-tu faire cela ?
    Si c'est pour transmettre les informations du formulaire au serveur, pas la peine de faire du javascript : cela se fait automatiquement au click du bouton.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @Html.DevExpress().Button(settings =>
    {
       settings.Name = "bloc1Save";
       settings.Text = "Enregistrer";
       settings.UseSubmitBehavior = true;
    }).GetHtml();

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par défaut
    En faite j'avais laissé tombé le formulaire en cherchant d'autre piste.

    Je voulais que ma partial view passe son model à la vue qui l'affiche grâce au javascript et que c'est ma fonction javascript qui passe ce model (de ma partial view) à mon contrôleur, comme ça je passé mes données à mon contrôleur sans recharger la page.

    Je me rend compte que je commence à me perdre un peu ^^

  12. #12
    Membre chevronné

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Par défaut
    oui surtout que ça se fait très bien avec Ajax.BeginForm (et que c'est fait pour en plus !)
    Reviens au formulaire ou tu vas galérer, pour aucun gain en plus...

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par défaut
    Ok je vais refaire mon code au propre.

    Le dev web c'est quand même bien différent du dev "bureau"

    En tout cas merci de tes conseils

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par défaut
    Dernière petit question :

    Si je fais une fonction onload sur un roundPanel, on peut passer des données de la fonction onload à mon roundpanel ? Vu que l'on ne peut pas faire de bind sur le roundPanel.

  15. #15
    Membre chevronné

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Par défaut
    Citation Envoyé par Provson Voir le message
    Le dev web c'est quand même bien différent du dev "bureau"
    Oui je confirme, c'est pour ça que les webforms, dans la philosophie, c'est quand même un peu une hérésie, et qu'avec MVC, on refait enfin du web !
    Je te conseille fortement de te documenter sur le HTML (le fonctionnement des formulaires au moins) pour arriver à comprendre. Surtout que c'est pas bien compliqué...

  16. #16
    Membre chevronné

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Par défaut
    Citation Envoyé par Provson Voir le message
    Dernière petit question :

    Si je fais une fonction onload sur un roundPanel, on peut passer des données de la fonction onload à mon roundpanel ? Vu que l'on ne peut pas faire de bind sur le roundPanel.
    Pas de bind en MVC, en fait tu récupères les données via le modèle en début de page que tu as transmis à ta méthode View ou PartialView.

    Honnêtement je te conseille, si personne ne peut t'aider où tu bosses, de lire a minima la MSDN pour le MVC3 et un tuto sur le HTML.
    C'est ce que j'ai fait pour le MVC et ça m'a aidée à comprendre le schéma d'exécution des pages MVC. Sinon tu vas tourner en rond et t'arracher les cheveux.
    Sur le principe c'est pas compliqué mais il faut te sortir de la tête la programmation événementielle.

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par défaut
    En faite je connais le principe du MVC mais vu que les composants devexpress sont des composant (soit disant) de haut niveau je pensé pouvoir découper ma page pour éviter de charger l'intégralité de mes données.

    Vu que les utilisateurs (de mon projet) devront pouvoir modifier et enregistrer les modifications par bloc.

    Je suis entrain de tester le begin form ajax.

Discussions similaires

  1. Sortie de Microsoft ASP.NET MVC Beta
    Par Jérôme Lambert dans le forum Général Dotnet
    Réponses: 17
    Dernier message: 06/11/2008, 23h12
  2. [ASP.NET MVC] C'est quoi ?
    Par DranDane dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/09/2008, 11h48
  3. ASP.NET MVC Preview 4
    Par hollywood dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 22/07/2008, 11h57
  4. Framework ASP.NET MVC
    Par superbobo dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 02/07/2008, 16h11
  5. ASP.NET MVC Preview 2
    Par cereal59 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 04/04/2008, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo