begin process at 2010 03 16 15:23:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

Autre

 > 

[asp][1.1] XML et datagrid


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[asp][1.1] XML et datagrid

mardi 22 août 2006 à 09:40:26 | [asp][1.1] XML et datagrid

SupaLou

Bonjour tout le monde,

Je dispose d'un fichier xml comme ceci:

<?

xmlversion="1.0"standalone="yes"?><regions>
   
<regionidRegion="0"nomRegion="Région 0">
      <serveuripServeur="XX.XX.XX.XX">
         <idServeur>01</idServeur>
         <type>Consolidation</type>
         <nomServeur>Serveur_00_01</nomServeur>
      </serveur>
   </region>
   <regionidRegion="1"nomRegion="Région 1">
      <serveuripServeur="XX.XX.XX.XX">
         <idServeur>01</idServeur>
         <type>BDD</type>
         <nomServeur>Serveur_01_01</nomServeur>
      </serveur>
      <serveuripServeur="XX.XX.XX.XX">
         <idServeur>03</idServeur>
         <type>IIS</type>
         <nomServeur>Serveur_01_03</nomServeur>
       </serveur>
   </region>
</regions>


Je souhaiterai alors afficher dans un dataGrid les informations concernant uniquement les serveurs (c'est à dire une colone pour l'ipServeur, une autre pour l'idServeur, une pour leur type et une quatrième pour leur nom) appartenant à une région dont l'idRegion est stockée dans une variable. Le problème est que je ne sait pas trop comment alimenter mon dataSet afin de ne récupérer que ces noeuds là sachant que après je souhaiterai pouvoir faire les modifier, supprimer...

Merci pour votre aide
mardi 22 août 2006 à 21:07:34 | Re : [asp][1.1] XML et datagrid

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonjour,

Ton XML ne peut malheureusement pas être chargé dans un dataset à cause de sa structure. Tu as 2 solutions soit tu convertis ton xml en un autre XML qui soit chargeable dans un dataset. Pour réaliser ca tu passes par une transfo xslt mais c'est assez lourd, l'autre solution est de passer par le DOM tout ce qu'il y a de plus classique en utilisant le namespace System.XML et le XMLDocument :-)


Cyril - MVS - MCP
mercredi 23 août 2006 à 09:06:57 | Re : [asp][1.1] XML et datagrid

SupaLou

Bonjour Jesusonline,
Merci de m'avoir répondu mais je ne comprend pas pourquoi tu me dis que mon fichier xml ne peut pas être chargé dans un dataSet à cause de sa structure car je l'ai déjà fait pour afficher toutes mes régions dans un datagrid!!??Et donc je voulais savoir si c'etait possible d'ajouter une sorte de filtre a mon dataSet pour n'afficher que les serveurs appartenant à une région dont je connais l'idRegion dans un autre dataGrid. Effectivement on peut passant par DOM et je pense savoir comment faire ceci mais ca me parraissait un peu "lourd".
J'ai donc eu recourt à une "astuce" pour résoudre mon problème. J'ai ajouté un attribut à chaque serveur dans mon fichier xml que j'ai appelé idRegion:

<?

xmlversion="1.0"standalone="yes"?>
<
regions>
   <regionidRegion="0"nomRegion="Region 0">
      <serveuridRegion="0"ipServeur="XX.XX.XX.XX">
         <idServeur>01</idServeur>
         <type>Consolidation</type>
         <nomServeur>Serveur_00_01</nomServeur>
      </serveur>
   </region>
   <regionidRegion="1"nomRegion="Region 1">
      <serveuridRegion="1"ipServeur="XX.XX.XX.XX">
         <idServeur>01</idServeur>
         <type>BDD</type>
         <nomServeur>Serveur_01_01</nomServeur>
      </serveur>
      <serveuridRegion="1"ipServeur="XX.XX.XX.XX">
         <idServeur>03</idServeur>
         <type>IIS</type>
         <nomServeur>Serveur_01_03</nomServeur>
      </serveur>
   </region>
</regions>

Pour recupérer mes serveurs appartenant à une certaine région il m'a désormais suffit de faire:

DataSet ds =

new DataSet();
ds.ReadXml(Server.MapPath("Regions.xml"));
DataView dv = new DataView();
dv.Table = ds.Tables["serveur"];
// Je crée mon filtre pour ne récupérer que les serveurs qui m'interresse
dv.RowFilter = "idRegion=" + Session["idRegion"].ToString();
dataGridServeurs.DataSource = dv;
dataGridServeurs.DataBind();

Voilà cette méthode fonctionne à merveille si ce n'etait que j'aurai bien aimé trouver la solution sans avoir besoin de modifier mon fichier xml de base, donc si quelqu'un à une idée ;-)
mercredi 23 août 2006 à 09:23:28 | Re : [asp][1.1] XML et datagrid

jesusonline

Membre Club Administrateur CodeS-SourceS
Ah ? je ne savais pas que les dataset prenait les attributs comme nom de colonne :-) c'est une bonne nouvelle alors ca :p Je ne sais donc malheureusement pas comment récuperer un attribut du noeud parent :-/ Si c'est possible il doit falloir modifier la facon dont il lit le fichier mais j'avoue mon ignorance :-/


Cyril - MVS - MCP
mercredi 23 août 2006 à 10:11:58 | Re : [asp][1.1] XML et datagrid

SupaLou

Ravi de t'avoir appris quelque chose alors
Je crois que je vais garder ma soluce alors, mais si jamais je trouve je te tiens au courant .

J'ai également un autre petit problème et peut être pourras tu m'aider sinon je ferai un autre post...
Alors sur une page web j'ai pu créer différents "groupes" de controles de validation en mettant la propriété causesValidation = false à tous les boutons de mon formulaire. En fonction du bouton sur lequel je clic j'active les bons controles de validation et je teste en faisant:
requiredFieldValidator.Validate();
if(requiredFieldValidator.IsValid)
{
}
Comme tu le vois je suis en 1.1 !!

Cela marche quasiment comme je le veux sauf que sur cette même page j'ai un dataGrid qui possède un mode d'édition et lorsque je valide mes modif (UpdateCommande) tous les controles validation de la page apparaissent et donc là c'est le drame car impossible de modifier mon dataGrid.
En gros je voudrai que mon dataGrid est la propriété CausesValidation à false mais elle n'existe pas je crois??
mercredi 23 août 2006 à 10:30:28 | Re : [asp][1.1] XML et datagrid

jesusonline

Membre Club Administrateur CodeS-SourceS
Raaa Asp.net 2 avec la propriété ValidationGroup est vraiment magnifique :-)

Dans ton cas il va falloir s'abonner à l'event rowdatabound (ou truc du genre) rechercher le linkbutton du mode edition et le mettre le causesvalidation à false ici :-)


Cyril - MVS - MCP
mercredi 23 août 2006 à 13:18:17 | Re : [asp][1.1] XML et datagrid

SupaLou

oui comme tu dis la propriété ValidationGroup m'aurai beaucoup servi !!

Mais là tu m'as un peu perdu je dois dire. En effet je n'est pas encore acquis la notion d'abonnement à un évènement. Je comprend bien ce qu'il faut que je fasse mais je ne vois pas du tout comment le mettre en oeuvre.

Pourrais tu me donner un petit exemple sans vouloir abuser?

Je te remerci grandement
mercredi 23 août 2006 à 14:00:46 | Re : [asp][1.1] XML et datagrid

jesusonline

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
dg.rowDataBound += new EventHandler(Dg_RowDataBound)

...

private void Dg_RowDataBound(Object sender, QuelquechoseEventArgs e)
{
  if (e.itemtype == itemtype.data)
  {
LinkButton    lelinkbutton =  (LinkButton)e.item.FindControl("truc");
   }
}

J'ai abandonné le datagrid depuis longtemps donc les events & co je me souviens plus de leur nom :/

regarde ici pour un exemple avec un gridview : http://www.aspfr.com/tutoriaux/DEBUG-ASP-NET-AVEC-VISUAL-STUDIO_384.aspx


Cyril - MVS - MCP
mercredi 23 août 2006 à 14:39:09 | Re : [asp][1.1] XML et datagrid

SupaLou

Okey merci beaucoup pour les infos et le lien, je vais regardé tout ca
mercredi 30 août 2006 à 13:35:26 | Re : [asp][1.1] XML et datagrid

SupaLou

Réponse acceptée !

Bon alors j'ai trouvé quelque chose de vraiment super simple pour régler mon probleme de validation dans mon dataGrid.
Pour supprimer la propriété causesValidation = true de mon LinkButton il suffit en fait de faire:

// Sur l'évènement creation d'item du dataGrid
privatevoid dataGridRegions_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
   // On test si le controle crée est bien un controle de type EditItem
   if (e.Item.ItemType == ListItemType.EditItem)
   {
      // On recupère ce controle et on passe à false la propriété cause validation
      LinkButton linkbutton = (LinkButton)e.Item.Cells[0].Controls[0];
      linkbutton.CausesValidation =
false;
   }
}

Voili voilou

;-)



Cette discussion est classée dans : type, serveur, xx, xml, idserveur


Répondre à ce message

Sujets en rapport avec ce message

Enregistrer en XML... [ par guizmo123 ] Bonjour tout le monde !Cela fait 4 jours que je fais des recherches sur comment enregistrer un fichier XML sur un serveur distant. Détails -> j'ai fai Parser un fichier XML sur un serveur distant [ par Skyride ] Bonsoir à tousQuelqu'un pourrait t'il me renseigner sur un point particulier...Voila je vous expose mon problème, un fichier de données XML est stocké Probleme de Fash+XML sur PHP sur serveur lol [ par pjfury ] Kikou a tous :)J'ai réalisé un prog sous flash qui utilise un fichier XML distant sur un autre serveur.Quand je fais le test sur mon pc (ctrl+alt+entr Débutante paumée, help!!! [ par thanae19 ] Bonjours a tous,Voila ma question est peut etre simple mais je m'y pert. Je débute en Xml (ai plus l'habitude des db SQL ouvert par ADO) et j'arrive p problemes de modification d'un fichier XML mais sur un serveur distant [ par anis13014 ] Voila j'expose mon probleme je dois pouvoir agir sur deux fichiers xml situé sur un serveur a distant mais sans les telecharger car ces deux fichiers [XSL]Importer et lire un .xml se trouvant sur un serveur... [ par akaii ] Bonjour, Je dois rendre dynamique cette partie de code Actuellement le fichier pbxglobal.xml est en dur dans mon projet, mais c'est un fichier qui est Dérivation d'un fichier sitemap (de type xml) [ par PeTeRsLaStAr ] Bonjour. Je souhaiterais savoir s'il est possible de dériver un fichier de type web.sitemap Je m'explique, je souhaiterais rajouter un autre attribut Création fichier XML [ par tininou ] Bonjour, Je dispose d'une table access avec : 1 table Type avec 2 champs (id_type,libelle_type) 1 table Marque avec 2 champs également (id_marque, lib Spécifier un nom XML unique et/ou un espace de noms pour le type [ par tataye ] Bonjour,Je rencontre le message suivant : Les types 'WebReference1.MonObjet' et 'WebReference2.MonObjet' utilisent le no les balises serveur ne peuvent pas contenir <% ... %>???? [ par pilou812 ] Bonjour,Je souhaite passer dans une balise J'ai le message d'erreur suivant:Server tags cannot contain constructsMon code est le s


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales