Rechercher : dans
Par :

Envois store complet en Json

Tsunami Chups, le 16 nov 2009 à 10:31:06 
 Signaler ce message aux modérateurs

Bonjour,

J'ai creer 2 grid avec un deplacement de la griid 1 vers la grid 2 pour ajouter des donner de la 1 dans le store de la 2 (ca ca marche)

je veu ensuite envoyer en Json mon store2 (celui de la grid 2) probleme s'est qu'il ne m'envois que les donner qui sont deja presente dans la base de donner sans tenir conte de mes donner drag and drop

pour ajouter les donner de la grid 1 a la grid 2 jutilise les fonction add() et insert() mais ce ne fonctionne pas.

quand je fait le total du nombres de ligne de ma grid 2 il me ressort le nombre d'entré dans la bdd et non le nombre total de ligne dans la grid

je vpous copie mon code

function draganddrop()
{
	 
	recherchepanel = new Ext.FormPanel({
		title : 'Recherche',
		id : 'recherche',
		waitMsgTarget : true,
		frame : true,
		//width : 500,
		bodyStyle : 'padding:5px; float:left;',
		
		items : [{
			xtype: 'textfield',
			fieldLabel : 'Recherche',
			name : 'recherche',
			allowBlank:false,
			blankText: 'Ce champ est requis',
			width: '94%'
		}],
		buttons : [{
			text : 'Rechercher',
			handler : search
		}]
	});
	
	recherchepanel.render('element');
	
	
	////////////////////////////////////
    //donner de base du panel droite////
    ////////////////////////////////////
    
    var myData = {
        records : [
            { name : "Rec 0", column1 : "0", column2 : "0" },
            { name : "Rec 1", column1 : "1", column2 : "1" },
            { name : "Rec 2", column1 : "2", column2 : "2" },
            { name : "Rec 3", column1 : "3", column2 : "3" },
            { name : "Rec 4", column1 : "4", column2 : "4" },
            { name : "Rec 5", column1 : "5", column2 : "5" },
            { name : "Rec 6", column1 : "6", column2 : "6" },
            { name : "Rec 7", column1 : "7", column2 : "7" },
            { name : "Rec 8", column1 : "8", column2 : "8" },
            { name : "Rec 9", column1 : "9", column2 : "9" }
        ]
    };

    
    
    // Generic fields array to use in both store defs.
    var fields = [
        {name: 'name', mapping : 'name'},
        {name: 'column1', mapping : 'column1'},
        {name: 'column2', mapping : 'column2'}
    ];

    // create the data store
    var firstGridStore = new Ext.data.JsonStore({
    	//url: '/json/top/listage/type/1',        //chemin vers le controller nous envoyant les valeur en Json
    	url: '/json/top/searchalbum/',
    	timeout : 30000,
        //root: 'records',
        totalProperty: 'totalCount',
        //remoteSort: true,
        fields: [
                 {name: 'id', type: 'int', mapping : 'id'},
                 {name : 'name', mapping : 'name'},
                 {name : 'release_date', mapping : 'release_date'}
                 ],
        root   : 'records'
    });
   
    var secondGridStore = new Ext.data.JsonStore({
    	
    	url: '/json/top/listagerelatif/type/'+type+'/id/'+insertid,        //chemin vers le controller nous envoyant les valeur en Json
        timeout : 30000,
        //root: 'records',
        totalProperty: 'totalCount',
        //remoteSort: true,
        fields: [
                 {name: 'id_r', type: 'int'},
                 'name',
                 'id_element'
                 ],
            /*fields : fields,
        data   : myData,*/
        root   : 'records'
    });


    // Column Model shortcut array
    var cols = [
        { id : 'name', header: "id", width: 200, sortable: true, dataIndex: 'id'},
        {header: "name", width: 200, sortable: true, dataIndex: 'name'},
        {header: "Info sup", width: 200, sortable: true, dataIndex: 'release_date'}
        
    ];

    var cols2 = [
                 { id : 'name', header: "id", width: 200, sortable: true, dataIndex: 'id_element'},
                 {header: "name", width: 200, sortable: true, dataIndex: 'name'},
                 {header: "Info sup", width: 190, sortable: true, dataIndex: 'id'},
                 {header: "Supp", width: 50, sortable: true, dataIndex: 'id_r', renderer : rendersupp}
                 
             ];
    
  //Paginbar
    var pagingBar = new Ext.PagingToolbar({
        pageSize: resultsPerPage,
        store: firstGridStore,
        displayInfo: true,      //info en bas a droite (page x : Y)
        displayMsg: 'Affichage des actualités {0} - {1} sur {2}',
        emptyMsg: "Aucun résultat",
        afterPageText: 'sur {0}'
    });
    
    // declare the source Grid
     firstGrid = new Ext.grid.GridPanel({
        height           : 700,
        bbar             : pagingBar,
        ddGroup          : 'secondGridDDGroup',
        store            : firstGridStore,
        columns          : cols,
        enableDragDrop   : true,
        stripeRows       : true,
        autoExpandColumn : 'name',
        title            : 'Element'
    });

  
    
    // create the destination Grid
    secondGrid = new Ext.grid.GridPanel({
    	height       : 700,
    ddGroup          : 'firstGridDDGroup',
        store            : secondGridStore,
        columns          : cols2,
        enableDragDrop   : true,
        stripeRows       : true,
        autoExpandColumn : 'name',
        title            : 'Grid relative'
    });

    //Simple 'border layout' panel to house both grids
    var displayPanel = new Ext.Panel({
        //width        : 650,
        //height       : 1000,
        layout       : 'table',
        renderTo     : 'panel',
        //defaults     : { flex : 1 }, //auto stretch

        layoutConfig : { 
            //align : 'stretch'
        	columns: 3
             
                        },
        items        : [
            firstGrid,
            secondGrid
        ],
        bbar    : [
            '->', // Fill
            {
                text    : 'Reinitiaiser',
                handler : function() {
                    //refresh source grid
                    //firstGridStore.loadData(myData);
                    firstGridStore.load({params:{start:0, limit:resultsPerPage}, waitMsg:'Chargement'});
                    //purge destination grid
                    secondGridStore.removeAll();
                    secondGridStore.load({params:{start:0, limit:resultsPerPage}, waitMsg:'Chargement'});
                }
            },
            {
            	text : ' - '
            },
            {
                text    : 'Sauvegarder',
                handler : //updateDB
                	function() {
            		var updated_data = new Array();
            		ds = secondGrid.store/*.getStore()*/;
            		//var id = ds.data.id;			        
            		var recordCount =ds.getTotalCount();			        
            		rows = ds.getRange(0,recordCount);
			        for (x=0; x < recordCount; x++)
            		{  
                 		updated_data[x] = rows[x].data;
            		}
			        json_data = Ext.encode(updated_data);
					 					
			       
	            	Ext.Ajax.request({
	            		waitMsg : 'Enregistrement en cours...',
	            		url : '/json/top/addrelationalbum',
	            		timeout : 30000,
	            		method : 'POST',
	            		params: {
	            				 id_top : insertid,
	            				 type : type,
	            				 store:json_data,
	            				 count : ds
	            				 /*id_element : secondGrid.store.id*/
	            				 
	            				},
	            		waitMsg: 'Veuillez patienter',
	            		
	            		success: function(response){
	            					 Ext.MessageBox.alert("L\'album a bien été ajouté.");
	            					 
	            				 },
	            		
	            		failure: function(response){
	            					Ext.MessageBox.alert('Erreur', "L'\album n'a pas été ajouté.");
	            		}
	            		
	            	});
                }

            }
        ]
    });

    // used to add records to the destination stores
    var blankRecord =  Ext.data.Record.create(fields);

        /****
        * Setup Drop Targets
        ***/
       //deplacement de la grid droite vers la grid gauche
    	var firstGridDropTargetEl =  firstGrid.getView().scroller.dom;
        var firstGridDropTarget = new Ext.dd.DropTarget(firstGridDropTargetEl, {
                ddGroup    : 'firstGridDDGroup',
                notifyDrop : function(ddSource, e, data){
                        var records =  ddSource.dragData.selections;
                        Ext.each(records, ddSource.grid.store.remove, ddSource.grid.store);
                        firstGrid.store.add(records);
                        firstGrid.store.sort('name', 'ASC');
                        return true
                }
        });


        //deplacement de la grid gauche vers la grid droite
        var secondGridDropTargetEl = secondGrid.getView().scroller.dom;
        var secondGridDropTarget = new Ext.dd.DropTarget(secondGridDropTargetEl, {
                ddGroup    : 'secondGridDDGroup',
                notifyDrop : function(ddSource, e, data){
                        var records =  ddSource.dragData.selections;
                        Ext.each(records, ddSource.grid.store.remove, ddSource.grid.store);
                        secondGrid.store.insert('',records);
                        //secondGrid.store.sort('name', 'ASC');
                        return true
                }
        });
        
        var secondGridDropTargetE2 = secondGrid.getView().scroller.dom;
        var firstGridDropTarget = new Ext.dd.DropTarget(secondGridDropTargetE2, {
                ddGroup    : 'firstGridDDGroup',
                notifyDrop : function(ddSource, e, data){
                        var records =  ddSource.dragData.selections;
                        Ext.each(records, ddSource.grid.store.remove, ddSource.grid.store);
                        firstGrid.store.add(records);
                        //firstGrid.store.sort('name', 'ASC');
                        return true
                }
        });

        firstGridStore.load({params:{start:0, limit:resultsPerPage, recherch:recherche}, waitMsg:'Chargement'});
        secondGridStore.load({params:{start:0, limit:resultsPerPage}, waitMsg:'Chargement'});
        
}



function rendersupp(value, p, record)
{
		return '<img src="/images/backOffice/delete2_16.png" onclick="del(\'' + value + '\', \'' + record.data.title + '\')" class="pointer" />';
}

function del(value, name)
{
	Ext.MessageBox.confirm('Confirmation', 'Etes vous sur de vouloir supprimer l\'entrer "' + value + '" de la liste ?',
							function (btn, text) {
								if (btn == 'yes')
								{
									Ext.Ajax.request({
										
										url : '/json/top/deletassosc',
										timeout : 30000,
										method : 'POST',
										params: {id: value,
												 type : type,
												 
												},
										waitMsg: 'Veuillez patienter',
										success: function(response){
											Ext.MessageBox.alert("Le top a bien été supprimé.");
											//secondGridStore.load({params:{start:0, limit:resultsPerPage}, waitMsg:'Chargement'});
										},
										failure: function(response){
											Ext.MessageBox.alert('Erreur', "Le top n'a pas été supprimé.");
										}
									});
								}
							}
	);
}



function search()
{
	recherchepanel.getForm().submit({
		url: '/json/top/searchalbum',
		waitTitle: 'Veuillez patienter',
		waitMsg:'Recherche en cours ... ',
		success: function(f,a) 
		{
			console.log(total = Ext.util.JSON.decode(a.response.responseText).totalCount);
			
			
		},
		failure: function(f,a) 
		{
			recherche = Ext.util.JSON.decode(a.response.responseText).recherche;
		
			 console.log(recherche);
			 console.log(firstGrid);
			 
			 firstGrid.store.removeAll();
			 firstGrid.store.load({params:{start:0, limit:resultsPerPage, recherche:recherche}, waitMsg:'Chargement'});
		}
	});
	
	
	
}


On ne devrais jamais dire impossible avant d'avoir essayé.
L'étroitesse d'esprit est le pire des défaut 
Tan qu'a mourir autant que ce soit en faisant ce qui me plait 
Configuration: Windows XP
Safari 532.0

Meilleures réponses pour « envois store complet en Json » dans :
[Outlook/ThunderBird/Incredimail] Envoi/Réception de mail VoirVous avez des problèmes d'envoi ou de réception de mail dans votre client de messagerie ? Cet article va vous aider à diagnostiquer le problème. 1. Introduction à la messagerie 2. Problèmes d'envoi de mail 3. Problèmes de réception de...
Message bloqué dans la boite d'envoi de Outlook VoirProblème J'ai un problème avec Outlook. Mon épouse a essayé d'envoyer un message de 25 megas. Mais bien sûr celui n'arrive pas à partir. Mais je n'arrive plus à le supprimer de la boite d'envoi car Outlook me dit qu'il est en train de l'envoyer et...
Télécharger HP USB Disk Storage Format Tool VoirHP USB Disk Storage Format Tool est tout simplement un petit utilitaire de formatage de support USB ou un lecteur MP4. Le programme permet aussi de créer des clés amorçables ( bootable ). Ce logiciel fonctionne avec toutes les clés et lecteurs MP4...
Télécharger Intel Matrix Storage Manager VoirLe pilote Intel® Matrix Storage Manager fournit un support RAID haute capacité & tolérance aux fautes (RAID-5 et RAID-10) pour les disques Serial ATA des machines à base de chipsets Intel® P965, 975X, 955X et 945. Il fournit aussi le support pour...
SAN (Storage Area Network) VoirIntroduction aux SAN Un « SAN » (Storage Area Network) est un réseau de stockage à part entière. Un SAN est ainsi une architecture complète regroupant les éléments suivants : Un réseau très haut débit en Fibre Channel ou SCSI ; Des équipements...
Vidéo : synopsis, scénario et storyboard VoirSynopsis (résumé de l'histoire) Définition Contenu Le rôle du synopsis Longueur Rédiger un scénario Le séquencier Dans le scénario Story-board ou scénarimage C’est au départ l’idée qui constitue l’envie de monter un projet : un fait...