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 :

Créer un formulaire dynamique avec KnockOut


Sujet :

ASP.NET MVC

  1. #1
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 115
    Points : 129
    Points
    129
    Par défaut Créer un formulaire dynamique avec KnockOut
    Bonjour,
    Je dois créer un formulaire dynamique et pour ce la je me suis dis que j'allais utiliser knockout afin de simplifier mon problème mais je n'arrive pas a créer le viewModel adéquat
    J'ai plusieurs problème que l'on peut voir sur mon schéma :
    Le viewModel de 1er niveau, c'est ok je vois comment faire.
    Ramener les paramètres de base en fonction du choix de type dans la dropdownlist c'est Ok
    Par contre les mapper c'est une autre paire de manche

    Coté serveur les paramètre remontés ressemble à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Class Parameter
    {
    	id
    	Keyname
    	ParemeterValue
    	ParemeterTypeId
    	IsTypedParmeter
    	IsMultipleParemeter
    }




    Javascript
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <script type="text/javascript">
        	var RuleViewModel = function () {
        		//Make the self as 'this' reference
        		var self = this;
     
        		//Les propriétés déclarées sur la page (avec leurs valeurs par défaut)
        		self.id = ko.observable(0);
        		self.Name = ko.observable("");
        		self.Description = ko.observable("");
        		self.ParemeterTypeId = ko.observable(0);
     
        		self.Parameters = ko.observableArray(function() {
    				$.ajax({
    						type: 'Get',
    						url: '@Url.Action("GetParameters")',
    						data: {
    							self.Type
    						},
    						success: function(data) {
    							//La liste de résultat
    						}));
    					},
    					dataType: 'json'
    				});
        		});
     
        		// Operations
        		self.addParameter = function () {
        			self.parameters.push(new Parameter())
        		};
        		self.removeParameter = function (parameter) {
        			self.parameters.remove(parameter)
        		};
        	};
     
    	ko.applyBindings(new ExplorationRuleViewModel());
        </script>
    Un petit coup de main ?

  2. #2
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Cela date un peu mais je me permet de répondre quand même :

    Pour réussir ce que vous essayer de faire il vous faut faire 3 ViewModels, comme je l'ai fait sur ce Fiddle.

    Votre ViewModel coté c# sera du genre :

    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
     
    public class Parameter
    {
    public string Name {get;set;}
    public int ParameterTypeId {get;set;}
    public IEnumerable<SimpleParameter> SimpleParameters  {get;set;}
    public IEnumerable<KeyValueParameter> KeyValueParameters {get;set;}
    public IEnumerable<TypedParameter> TypedParameters {get;set;}
    }
    public class SimpleParameter
    {
    public string Value{get;set;}
    }
    public class KeyValueParameter
    {
    public string Name{get;set;}
    public string Value{get;set;}
    }
     
    public class TypedParameter
    {
    public string Name{get;set;}
    public int TypeId {get;set;}
    public string Value{get;set;}
    }
    En espérant que ça a pu être utile.

  3. #3
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Merci pour la réponse,
    j'étais passé à autre chose mais je vais pouvoir l'utiliser pour un autre cas !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/11/2006, 07h29
  2. Créer un objet dynamiquement avec JDI
    Par mcargnelli dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/09/2006, 14h18
  3. Formulaire Dynamique Avec Struts
    Par tarakakik dans le forum Struts 1
    Réponses: 1
    Dernier message: 24/08/2006, 13h22
  4. Créer un formulaire dynamique
    Par pomgnon dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/03/2006, 14h13
  5. [DisplayTag] Créer un lien dynamique avec javascript
    Par babylone7 dans le forum Taglibs
    Réponses: 3
    Dernier message: 20/04/2005, 10h23

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