begin process at 2010 02 09 21:15:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ASP & ASP.NET

 > 

Archives ASP & ASP.NET

 > 

ASP.net

 > 

Contrôle disparu du panel...


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

Contrôle disparu du panel...

dimanche 16 octobre 2005 à 15:11:16 | Contrôle disparu du panel...

DevilYann

Bonjour Dans le cadre de mon boulot, je dois afficher des pages avec des champs soit en visualisation (labels) soit en saisie (textboxs) suivant les droits de l'utilisateur. J'ai donc décidé dans le init() de la page de mettre soit un textbox soit un label dans un panel (présent en design). Maheureusement quand je clique sur le bouton enregistrer de ma page, le panel ne contient aucun contrôle... Comment résoudre ce casse tête ???... Svp svp... Merci
dimanche 16 octobre 2005 à 15:14:19 | Re : Contrôle disparu du panel...

DevilYann

Je précise que j'avais 2 autres solutions : - soit faire 2 pages différentes, une en visu, l'autre en saisie (g laissé tomber car si modif il y a à faire, faut la multiplir par 2) - soit mettre un textbox et un label et rendre invisible l'un des deux suivant les droits (pas terrible car alourdit le poids de la page) De plus j'ai une page qui contient environ 50 champs en modifs donc c pour ça que j'avais choisi la solution citée plus haut. Donc je voulais savoir si qqun a eu ce genre de problème à mettre en place car je ne dois pas être le premier.
dimanche 16 octobre 2005 à 15:29:32 | Re : Contrôle disparu du panel...

jesusonline

Membre Club Administrateur CodeS-SourceS
On peut voir le code ? car la je peux pas t'aider.

Sinon une troisieme solution aurait été de faire un CustomControl dérivant de textbox, et suivant les droits tu overrides le render pour n'afficher que le texte ou tu laisses pour mettre un textbox.

En gros :

public class superTextbox inherits System.web.ui.textbox

private _isAdmin as boolean = false
public property isAdmin as boolean ' get et set à faire

overrides sub render(html as htmltextrender) ' ou un truc du genre
if _isAdmin
html.write(this.text)
else
mybase.render(html)
end if
end sub

end class

Puis t'as plus qu'a mettre tes superTextbox dans la page :) aprés je sais pas ce que ca donne pour le viewstate & co, je te donne l'idée aprés il faudra ajuster.


Cyril - MVS - MCP ASP
dimanche 16 octobre 2005 à 15:54:12 | Re : Contrôle disparu du panel...

DevilYann

Je vais avoir du mal à te donner le code vu que je ne suis pas au boulot aujourd'hui et que je n'ai pas VS... ;o) Sinon ct un truc du genre (désolé pour les erreurs...) : public sub MyPage_Load() { if(_IsAdmin) { // Ajout d'un Textbox TextBox txt = new TextBox(); txt.Attributes.Add(...); // je rajoute tout ce qui me faut ici (évènements, propriétés etc...) mypanel.Controls.Add(txt); } else { // Ajout d'un Label Label lbl = new Label(); lbl.Attributes.Add(...); mypanel.Controls.Add(lbl); } } private sub MonBoutonClick() { string valeur = ((textbox)mypanel.Controls[0]).Value; // Et c là que mypanel ne contient aucun contrôles car on est repassé côté serveur... alors que côté client y a bien un textbox }
dimanche 16 octobre 2005 à 15:55:13 | Re : Contrôle disparu du panel...

DevilYann

Tu peux essayer de m'expliquer un peu plus ton idée car je ne la comprends pas forcément. En tout cas merci de la rapidité de ta réponse (comme d'habitude d'ailleurs...) ;o)
dimanche 16 octobre 2005 à 16:06:14 | Re : Contrôle disparu du panel...

jesusonline

Membre Club Administrateur CodeS-SourceS
Comment vivre sans Visual Studio :-| heureusement que notepad est installé par défaut ;)

Sinon pour le problème je pense que c'est du au fait que tu le rajoutes dans le page_load au lieu du page_init ... mais d'abord pourquoi tu met des textbox1.attributes.Add ? il va aussi faloir que tu mette un ID unique (vu que t'as plusieurs controles) donc textbox1.id = "textbox"  & i.tostring() avec i un compteur dans une boucle ou autre


Ensuite pour ma solution, as tu deja fait des custom controls ? en gros dans ce cas il faudrais qu'au lieu d'avoir

<asp:textbox ==> ca t'affiche une textbox il faudrais quelque chose qui t'affiche un textbox ou label donc créer son propre control

<cyril:superTextbox ==> ca fera ce que tu veux.

Pour faire ca, il faut créer un nouveau controle en dérivant de System.Web.UI.textbox ... mais avant de t'expliquer ce genre de choses, il faudrais que je sache si tu as deja fait ca ? :)


Cyril - MVS - MCP ASP
dimanche 16 octobre 2005 à 16:33:06 | Re : Contrôle disparu du panel...

DevilYann

Alors, pour ce qui est de l'absence de VS, au boulot je l'ai, pas à la maison car je ne programme pas en dehors du boulot... ;o) Sinon "attributes.add" me sert pour rajouter des évènemens côté client et d'autres propriétés qui ne sont pas présentes quand tu tapes "textbox1.". Mais c du pareil au même, c déjà testé. L'ID ne sert à rien. Car je met un seul contrôle par panel. Donc connaissant le nom du panel, je peux récupérer la valeur avec "((textbox)mypanel.Controls[0]).Value;". En plus quand je met un ID (textbox1.ID = "Numéro"), du côté client l'ID n'a pas été attribué (ID = "_ctrl8 par exemple) mais ca c un autre problème... Puis j'avais déjà essayé de mettre le code dans le init() et le load(), ca fait le même problème... Et pour répondre à ta dernière question, oui g déjà fait des Custom Control donc tu peux m'expliquer sans problème ;o). G un collègue qui m'a dit kil avait essayé le CustomControl (il avait le même cas que moi, soit saisie, soit modif) et il a laissé tombé car il avait eu trop de poblèmes et c trop long à mettre en place. Et le gros problème c kon me presse pour réaliser le projet et il ne me reste plus beaucoup de temps... En plus g déjà fait pas mal de pages pour ce projet (environ 100 contrôles sont concernés) donc si je pouvais faire marcher ma solution, ca serait cool... Merci de m'aider en tout cas.
dimanche 16 octobre 2005 à 16:46:42 | Re : Contrôle disparu du panel...

jesusonline

Membre Club Administrateur CodeS-SourceS
Pour résumer :

t'as une page classique avec un panel et dedans un seul label. et en bas de la page un bouton enregistrer


Ensuite dans le page_init tu veux que si l'utilisateur est admin, alors ce n'est pas un label mais un textbox à la place du label.

Le problème est que sur le click du bouton, ca plante ?


Cyril - MVS - MCP ASP
dimanche 16 octobre 2005 à 17:03:43 | Re : Contrôle disparu du panel...

DevilYann

Pour résumer : g un panel qui contient soit un label soit un textbox. Cette association est réalisée dans le Init() (ou le Load()) de la page. Ca ca marche, l'un ou l'autre s'affiche. L'utilisateur saisit les données dans le cas du textbox sans problème. Le problème, sur le click du bouton (donc retour vers le serveur), la panel ne contient plus aucun contrôle. Donc pas moyen de récupérer la valeur saisie.
dimanche 16 octobre 2005 à 17:06:21 | Re : Contrôle disparu du panel...

DevilYann

Je précise que si en design on met un textbox dans un panel, on arrive à récupérer la valeur. Mais dans la cas où c fait dynamiquement, là je sèche...

1 2

Cette discussion est classée dans : page, contrôle, panel, disparu


Répondre à ce message

Sujets en rapport avec ce message

[ASPX][VB.NET]Custom Contrôle et rendu sur la page aspx [ par chrisisis ] Bonjour, J'ai créer un contrôle personnalisé qui hérite de webControl (C'est un contrôle dépendant basé sur un modèle) J'ai réécrit, entre autre, les recharger toute la page lors de la confirmation d'un contrôle utlisateur.... [ par lutin2004 ] Comment fait-on pour recharger toute la page lors de confirmation d'un formulaire contenu par un contrôle utilisateur?Merci d'avance [C#] Accès au HEAD de la page [ par stailer ] Bonjour, Je suis en train de faire plusieurs contrôles serveurs en asp.net et la plupart ont besoin d'un fichier javascript externe pour fonctionner impression d'un panel apartir d'une page aspx [ par swiniya ] Hello everybody!!je veux imprimer un panel apartir d'une page aspx mais je sais pas comment faire?!!aidez moi svp!! Redimensionner un panel [ par drahcir ] Salut à tous,je voudrais savoir s'il est possible de redimensionner un panel dans une page en web. Je m'explique, j'ai un panel dans ma page, et je so Problème de findcontrol [ par shawn ] Bonjour, Voici mon problème J'ai un gridview dans ma page. Dans ce gridview j'ai une templatecolumn dans laquelle j'ai un control radiobutton. Erreur lors de la création d'un contrôle [ par scortex84 ] Bonjour, j'ai un problème assez technique et tout aussi bizzarre. Je bosse avec un pote sur le développement d'un site en ASP.NET (VS 2003, Framewor [ASP 2.0] contrôle utilisateur et page_load [ par mcl75 ] Un peu novice sur ASP j'ai un souci dont je ne vois nulle part la solution :On a créé une page principale sur laquelle on a deux boutons pour choisirl [C#] Acceder a un contrôle depuis page (sur master page) [ par ultiny ] Bonsoir,Je voudrais savoir comment peut-on, en C#, accéder à un controle (sur ma MasterPage HTML, il porte l'id MyTitle) depuis la Page en cours de tr Controle Utilisateur Autonome [ par GreatNeo ] Bonjour, Je réalise une page web en ASP.net. Je dispose d'une page principale "main.aspx" qui contient deux contrôles utilisateurs autonomes "first.


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,764 sec (4)

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