ExtJS4: Ajouter personnalisé Menu clic droit dans MVC

La façon de créer un menu personnalisé dans la fonction clic de souris événement en plein ExtJS 4 est peu différent avec une pré-version. Il semble en poste 4.0.2, ils ont changé nom de l'événement et de l'ordre des arguments.

Tout d'abord, nous allons voir comment nous créons le menu en Ext 3. Je reçois cet exemple à partir Aditia Rahman :

 var menu1 = new Ext.menu.Menu ({
     articles: [
         {
             texte: «J'aime Ext ',
             vérifié: true
         }, '-', {
             texte: "Ouvrir avec",
             menu: {
                 articles: [{
                     texte: «Notepad + +"
                 }, {
                     texte: «GIMP 2.0 '
                 }, {
                     texte: 'Firefox'
                 }]
             }
         }, '-', {
             texte: "Couper"
         }, {
             texte: "Copier"
         }, {
             texte: «Supprimer»
         }, '-', {
             texte: "Renommer"
         }
     ]
 });

Écrivons un DataView pour ajouter un écouteur.

 var = new datav Ext.DataView ({
     AutoScroll: true, magasin: magasin, tpl: tpl,
     autoHeight: false, hauteur: 250, multiSelect: true,
     classe supérieure: «x-vue-over ', itemSelector:« div.thumb-wrap',
     emptyText: «Pas d'images à afficher ',
     style: 'border: 1px solid # 99BBE8; »,
     auditeurs: {
         rendre: {
             fn: function () {
                  Ext.getBody (). Sur ("ContextMenu", Ext.emptyFn,
                     null, {preventDefault: true});
             }
         },
         contextmenu: {
             fn: la fonction (obj, index, noeud, event) {
                 x = event.browserEvent.clientX;
                 y = event.browserEvent.clientY;
                 menu1.showAt ([x, y]);
             }
         }
     }
 });

Lorsque la vue des données est rendue, elle la désactivation du clic droit par défaut de menus du navigateur Web, c'est ce qu'on appelle chez les auditeurs «rendre» l'événement et "contexmenu« événement est destiné à détecter le droit événement clic de souris, de capturer la position du curseur de la souris et l'affichage du menu.

Il est facile non? Maintenant, nous allons faire un menu clic droit dans extjs 4 MVC.

1. Ajout d'un menu en "app / view / MenuRight.js 'affichage des dossiers

 Ext.define («PG.view.MenuRight ', {
         étendre: «Ext.menu.Menu»,

	 articles: [
		 {
			 texte: «J'aime Ext ',
			 vérifié: true
		 }, '-', {
			 texte: "Ouvrir avec",
			 menu: {
				 articles: [{
					 texte: «Notepad + +"
				 }, {
					 texte: «GIMP 2.0 '
				 }, {
					 texte: 'Firefox'
				 }]
			 }
		 }, '-', {
			 texte: "Couper"
		 }, {
			 texte: "Copier"
		 }, {
			 texte: «Supprimer»
		 }, '-', {
			 texte: "Renommer"
		 }
	 ]
 });

2. Ajout d'un écouteur dans le fichier de commande

 init: function () {
	 this.control ({
		 «Alias_name_here ': {
			 render: function () {
				  Ext.getBody () sur ("ContextMenu", Ext.emptyFn, null, {preventDefault: true}).;
			 },
			 itemcontextmenu: function (grille, record, point, indice, événement) {
				 x = event.browserEvent.clientX;
				 y = event.browserEvent.clientY;
				 var menu = nouvelle PG.view.MenuRight ();
				 menu.showAt ([x, y]);

				 / *
				 / / Si vous voulez créer un menu ici au lieu d'ajouter
                                 / / Menu dans le dossier de la vue, vous pouvez utiliser le code suivant
                                 event.stopEvent ();
				 var menu = Ext.create ('Ext.menu.Menu', {
					 articles: [{
						 texte: «Afficher le nom»,
						 gestionnaire: function () {
							 alert (record.get ('name'));
						 }
					 }, {
						 texte: «Afficher ID»,
						 gestionnaire: function () {
							 alert (record.get ('user_id'));
						 }
					 }]
				 });
				 menu.showAt (event.xy);
				 * /

			 }
		 },
	 });
Partager cet article:
Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Délicieux BlinkList Furl

No Responses to "ExtJS4: Ajouter personnalisé Menu clic droit dans MVC"

Laisser un commentaire:

Nom (obligatoire):
Mail (ne sera pas publié) (obligatoire):
Site Web:
Commentaire (obligatoire):
XHTML: Vous pouvez utiliser ces balises: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>