Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1635 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#][.net] Ouvrir un popup, effectuer des saisies dans le popup (ASPX)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C#][.net] Ouvrir un popup, effectuer des saisies dans le popup (ASPX)

n°1521196
Clarkent
Musclor le shérif de l'espace
Posté le 27-02-2007 à 17:52:10  profilanswer
 

Hello,
 
J'ouvre un popup en javascript via window.open().
L'url passé est un .aspx qui contient une DataGrid éditable.
 
Je remplis les champs d'édition dans le footer, je valide, mais lors de l'itemCommand toutes les textbox sont dites vides :/.
Pour récupérer les textbox je fais un e.item.findoncontrol("nondutextbox" );
Il le trouve, mais la propriete text du textbox = "".
 
Quelqu'un saurait il m'expliquer pourquoi je n'arrive pas à récupérer les valeurs saisies des textbox ?
Probleme de viewstate ?
 
Je mets le meme grid dans lapage d'origine (donc pas de popup), je peux récupérer toutes les valeurs.
 
Merci.

mood
Publicité
Posté le 27-02-2007 à 17:52:10  profilanswer
 

n°1521264
moi23372
Posté le 27-02-2007 à 20:31:55  profilanswer
 

c'est normal... il n'y a aucun lien entre les deux pages. Puisqu'il s'agit bien de cela en fait. Les connexions http sont stateless... Donc tout est perdu d'une page à une autre.
Cependant, si tu veux pouvoir concerver les données entre les pages, il y a quand même bcp de moyens (variables de session, cookie, url paramétrées)....
 
Rien ne t'empêche dans ton popup de traiter le click du bouton qui ferme ta popup (qui est une page http), de taper les valeurs des textbox en session et de les récupérer ensuite dans la page....

n°1521319
Clarkent
Musclor le shérif de l'espace
Posté le 27-02-2007 à 22:53:53  profilanswer
 

moi23372 a écrit :

c'est normal... il n'y a aucun lien entre les deux pages. Puisqu'il s'agit bien de cela en fait. Les connexions http sont stateless... Donc tout est perdu d'une page à une autre.
Cependant, si tu veux pouvoir concerver les données entre les pages, il y a quand même bcp de moyens (variables de session, cookie, url paramétrées)....
 
Rien ne t'empêche dans ton popup de traiter le click du bouton qui ferme ta popup (qui est une page http), de taper les valeurs des textbox en session et de les récupérer ensuite dans la page....


Je remplis les textbox du popup qui est en fait une page ASPX, et quand je valide dans le popup je n'arrive a récupérer aucune saisie effectuées dans les textbox dans le meme aspx.
 
Je résume,
J'ai un ASPX qui contient un bouton qui ouvre un popup qui pointe lui meme sur un autre ASPX que j'appel page2.
Dans page2 il y a des textbox qui se trouvent dans un datagrid, j'effectue les saisies, je valide via un linkbutton qui a un commandName, j'entre dans l'itemCommand du grid. je fais le find control du textbox et il m'est indique que la propriete text du textbox = "". Et tout ca dans page2.
 
Par la suite je pourrai eventuellement transferer ces infos via la session, mais la n'est pas la question, je n'arrive pas  recuperer la saisie dans cette page de popup aspx (page2) qui contient des textbox ainsi que les méthodes permettant de traiter ces saisies.
 
Je pense que je me suis mal exprime ou que tu m'as mal compris :p, non ?

n°1521440
Clarkent
Musclor le shérif de l'espace
Posté le 28-02-2007 à 10:46:58  profilanswer
 

:'(.

n°1521967
moi23372
Posté le 28-02-2007 à 21:01:50  profilanswer
 

je patauge totalement...
 
a partir du moment ou tu es dans une page aspx. Quand tu valide ta page, tu passes dans le code behind. Le viewstate et autre mécanisme du fm .NET te permette donc de récupérer les valeurs de tes champs...
 
Rien ne t'empêche de récupérer les valeurs dans le bon event. Cependant, j'ai l'impression que tu veux récupérer tout dans le page load... Je ne suis pas convaincu que tu peux faire cela...

n°1522021
Clarkent
Musclor le shérif de l'espace
Posté le 28-02-2007 à 23:55:25  profilanswer
 

moi23372 a écrit :

je patauge totalement...
 
a partir du moment ou tu es dans une page aspx. Quand tu valide ta page, tu passes dans le code behind. Le viewstate et autre mécanisme du fm .NET te permette donc de récupérer les valeurs de tes champs...
 
Rien ne t'empêche de récupérer les valeurs dans le bon event. Cependant, j'ai l'impression que tu veux récupérer tout dans le page load... Je ne suis pas convaincu que tu peux faire cela...


pourquoi tu me parles du page_load ?
 
C'est tres simple, j'ai une page ASPX qui ouvre une autre fenetre du navigateur via un windows.open qui a comme parametre url une autre page ASPX.
Malheureusement dans cette nouvelle page il y a un grid, et dans ce grid il y a le footer, je remplis les textbox du present dans le footer, je clique sur le bouton du grid qui dit "ajouter" pour ajouter la ligne au grid, mais impossible de recuperer les saisies des textbox il me trouve systématiquement comme valeur "", bein sur la on est dans l'itemCommand du grid.

n°1526598
moi23372
Posté le 09-03-2007 à 19:57:31  profilanswer
 

tu ne crois pas que quelques lignes de code expliquerais bcp mieux à quoi tu veux arriver.

n°1526689
Clarkent
Musclor le shérif de l'espace
Posté le 10-03-2007 à 02:35:18  profilanswer
 

moi23372 a écrit :

tu ne crois pas que quelques lignes de code expliquerais bcp mieux à quoi tu veux arriver.


pas trop vu qu'il s'agit surtout de génération de html et js.
 
je vais tenter un truc, mais le code n'est pas compilable et bourré de fautes, cela reste valable pour l'idée.
 
Je suis dans ma page1.aspx, il y a un bouton, sur ce bouton il y a l evenement onclick, sur le onclick je fais un windows.open(url), ca donne a peut pres  
ca :

Code :
  1. <input type=button id="toto" onclick="javascript:window.open("page2.aspx" ); return false;">


 
Je clique sur le bouton "toto", il m'ouvre une deuxieme fenetre du navigateur et charge page2.aspx.
dans ma page2.aspx, il y a un champs de saisie textbox ainsi qu'un bouton pour valider la saisie, ca donne quelque chose comme :
 

Code :
  1. <asp:textbox id="masaisie">
  2. <asp:button id="valider" value="je valide">


 
J'effectue une saisie dans "masaisie", je valide en cliquant sur le bouton "valider", il envoit le formulaire au serveur, je tombe sur l'évenement .net onclick du bouton "valider" :
 

Code :
  1. private void valider_click(sender, eventarg)
  2. {
  3.      string lectureDeLaSaisie = maisaisie.text;
  4.      Response.write(lectureDeLaSaisie);
  5. }


 
Et quoi que je saisisse dans "masaisie", masaisie.text est toujours égal à "", une chaîne vide.
 
Je ne comprends pas pourquoi.
 
Si par exemple, je donne une valeur par defaut  au textbox "masaisie" :
 

Code :
  1. <asp:textbox id="masaisie">
  2. <asp:button id="valider" value="je valide" text="glop">


 
Je valide, quelque soit le fait que j'efface "glop", que je change le texte ou que je ne fasse rien, lors de la validation, masaisie.text retournera "glop".
 
C'est peut être un peu plus clair :p.


Message édité par Clarkent le 10-03-2007 à 02:35:30
n°1526706
Bi11Bar0ud
Posté le 10-03-2007 à 09:23:54  profilanswer
 

Salut,
 
Euh je vais surement dire un truc très con, mais c'est souvent sur les trucs les plus cons qu'on bloque....
 
Je suppose que tu bindes ton Datagrid dans le Page_Load ? T'aurais pas oublié un :
 

Code :
  1. if (!Page.IsPostBack)
  2. {
  3.      ...
  4. }

n°1526777
Clarkent
Musclor le shérif de l'espace
Posté le 10-03-2007 à 13:28:30  profilanswer
 

Bi11Bar0ud a écrit :

Salut,
 
Euh je vais surement dire un truc très con, mais c'est souvent sur les trucs les plus cons qu'on bloque....
 
Je suppose que tu bindes ton Datagrid dans le Page_Load ? T'aurais pas oublié un :
 

Code :
  1. if (!Page.IsPostBack)
  2. {
  3.      ...
  4. }



il ne me semble pas que je bind le grid systématiquement a chaque load, je ne pense pas l'avoir oublié :).
 
Sinon le problème que j'évoque semble étrange ou normal ? perso il me semble très étrange, je pourrai accuser une gestion hasardeuse du viewstate mais je ne sais pas :(.

mood
Publicité
Posté le 10-03-2007 à 13:28:30  profilanswer
 

n°1527010
moi23372
Posté le 11-03-2007 à 10:44:24  profilanswer
 

en gros si je résume, dans ta page 2, tu n'as aucune saisie qui fonctionne en retour serveur.
 
Un exemple aussi con que ça, ça pue un problème de viewstate... Tes controles sotn bien en enableViewState = true?
 

n°1527042
Clarkent
Musclor le shérif de l'espace
Posté le 11-03-2007 à 13:12:29  profilanswer
 

moi23372 a écrit :

en gros si je résume, dans ta page 2, tu n'as aucune saisie qui fonctionne en retour serveur.
 
Un exemple aussi con que ça, ça pue un problème de viewstate... Tes controles sotn bien en enableViewState = true?

voila tu as compris.
Et oui le viewstates est activé :/.
C'est pour ca que je n'y comprends rien, vous arrivez à reproduire la chose de votre coté ?
Ou suis je le seul le seul a avoir eu besoin de ce genre de truc :).

n°1527091
moi23372
Posté le 11-03-2007 à 17:42:26  profilanswer
 

oui tu es le seul concerné par ce genre de problème...
 
Je n'ai pas l'habitude bosser avec du .NET 1.1, en 2.0 ça fonctionne nikel chez moi...  
Mais normalement ça doit tourné aussi bien en 1.0...
 
Est-ce que le problème ne viendrait pas peut etre du fait que la page est ouverte en JAVASCRIPT
essaye de faire peut etre un retour serveur pour ça juste histoire de tester

n°1527108
Clarkent
Musclor le shérif de l'espace
Posté le 11-03-2007 à 18:45:56  profilanswer
 

moi23372 a écrit :

oui tu es le seul concerné par ce genre de problème...
 
Je n'ai pas l'habitude bosser avec du .NET 1.1, en 2.0 ça fonctionne nikel chez moi...  
Mais normalement ça doit tourné aussi bien en 1.0...
 
Est-ce que le problème ne viendrait pas peut etre du fait que la page est ouverte en JAVASCRIPT
essaye de faire peut etre un retour serveur pour ça juste histoire de tester


merci. L'ouverture du popup est faite en js, je vois pas comment faire autrement.
 
Tu préconise d'utiliser un asp:button, de faire le submit et sur le onclick de l'asp:button de faire le window.open ?
Je n'ai pas tenté, je n'utilisais qu'un input type=button.
 
Je tenterai ça :(, mais ça ne m'enchante pas d'appeler systématiquement le serveur.

n°1527428
moi23372
Posté le 12-03-2007 à 16:09:50  profilanswer
 

tu tapes un simple bouton.
Tu traites son click coté serveur  
et tu fais un  
 
Server.Transfert("http://machin.aspx" );
ou  
Response.Redirect("http://machin.aspx" );
 
 
"Je tenterai ça , mais ça ne m'enchante pas d'appeler systématiquement le serveur."
C'est juste histoire de tester


Message édité par moi23372 le 12-03-2007 à 16:10:47
n°1527635
Clarkent
Musclor le shérif de l'espace
Posté le 13-03-2007 à 00:14:51  profilanswer
 

et a quoi cela me serviriat ? car ca n'ouvre pas de popup.

n°1527676
moi23372
Posté le 13-03-2007 à 08:41:38  profilanswer
 

si tu ne veux pas le faire pour tester, ne le fait pas... Mais ne compte plus sur moi pour essayer de t'aider. Démerde toi.

n°1528153
Clarkent
Musclor le shérif de l'espace
Posté le 14-03-2007 à 00:30:09  profilanswer
 

moi23372 a écrit :

si tu ne veux pas le faire pour tester, ne le fait pas... Mais ne compte plus sur moi pour essayer de t'aider. Démerde toi.


 :??: faudrait comprendre que tu veux faire pour tester, faire un server.transfert ou response.redirect n'ouvre pas de popup ca va afficher la page dans le navigateur actuel :o, donc je ne vois pas a quoi ca sert, ou alors je en vois pas ce que tu veux faire.
Et pas la peine de t'enerver quand je ne comprends pas ta solution :o.
Merci quand meme :hello:.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#][.net] Ouvrir un popup, effectuer des saisies dans le popup (ASPX)

 

Sujets relatifs
[HTML] Ouvrir nouvelle fenetre ET fermer l'anciennepopup avec url en php (est-ce vraiment possible?)
ouvrir un fichier son avec javascriptEffectuer une recherche > Requete SQL?
VB.NET Ouvrir une MDB et executer du SQL dessus?[excel+vba]ouvrir un batch faisant appel a une archive .jar
faire d'une fenetre principale une popup[JS] Popup Netvibes
popup créer fê^netre problèmeHeader dans un popup
Plus de sujets relatifs à : [C#][.net] Ouvrir un popup, effectuer des saisies dans le popup (ASPX)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR