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

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [ASP.NET/C#] Problème de formulaires côté serveur (update 4/05/04)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP.NET/C#] Problème de formulaires côté serveur (update 4/05/04)

n°705729
pc2000
Posté le 22-04-2004 à 10:42:00  profilanswer
 

Voilà ce que je veux faire :
j'ai une table sous Sql Server qui contient des produits qui ont chacun des noms d'attributs spécifiques avec un type (textfield, listBox ...).

Code :
  1. Modèle M123 | Hauteur | Textbox
  2. Modèle M123 | Type | ListBox
  3. Modèle M124 | Largeur | Textbox
  4. ....


Je sais récupérer ces données mais je veux une fois que ces données sont récupérées, créer les objets correspondants (je fais la même page .aspx qui doit contenir des données différentes selon les produits).
Le problème c'est que je suis sous Visual Studio.NET 2003 et je ne sais pas comment déclarer les objets textbox ou listbox de manière dynamique dans le fichier .aspx (je sais qu'en PHP j'aurais fait un simple  

Code :
  1. <? if (condition) echo "<input type='text' name='hauteur' ..>"

en plein milieu du code
)
Mais comment faire en ASP.NET ?
Merci d'avance


Message édité par pc2000 le 04-05-2004 à 21:18:49
mood
Publicité
Posté le 22-04-2004 à 10:42:00  profilanswer
 

n°705750
HappyHarry
Posté le 22-04-2004 à 10:59:20  profilanswer
 
n°705798
pc2000
Posté le 22-04-2004 à 11:46:50  profilanswer
 


je sais oui, mais je veux des conseils de pro, ca serait quoi le plus adapté pour mon cas :
Un DataGrid, DataList, Repeater ?
Ou pas utiliser un objet ?
J'ai même un super bouquin Formation à .... ASP.NET
 
J'aurais du prendre ASP.NET pour les nuls  :whistle:


Message édité par pc2000 le 22-04-2004 à 11:47:53
n°705804
HappyHarry
Posté le 22-04-2004 à 11:53:07  profilanswer
 

tout dépend de la tronche que tu veux que ca aie a l'arrivée [:spamafote]
 
dans tous les cas, ne fous pas de code directement dans l'aspx, c'est cracra
 
le codebehind est fait pour ca
 
la dedans tu déclares un nouvel objet TextBox et tu le fous dans un conteneur quelconque

n°706032
pc2000
Posté le 22-04-2004 à 15:07:27  profilanswer
 

En gros ca serait de la Création dynamique de formulaire Web (nombre de button, champs, listes variables..).
Le mieux ne serait il pas de créer un objet panel et d'ajouter des trucs dedans ?

n°706048
HappyHarry
Posté le 22-04-2004 à 15:22:47  profilanswer
 

"un conteneur quelconque"

n°706084
pc2000
Posté le 22-04-2004 à 15:46:51  profilanswer
 

Oui tu me l'avais déjà dit :) et sinon je cherche à faire un parcours simple de mon DataSet (ou DataReader ?) du style (j'ai cherché mais de partout il est question de mettre le Dataset dans un objet comme DataList ou DataGrid) :  

Code :
  1. tant que (!fin de DataSet)
  2. lire données (puis faire traitement)
  3. Enregistrement suivant
  4. Fin tant que


 
Merci
 
PS : le SGBD est SQL Server et je travaille sous VS .NET 2003 (C#)


Message édité par pc2000 le 22-04-2004 à 15:50:22
n°706146
HappyHarry
Posté le 22-04-2004 à 16:28:06  profilanswer
 

y msdn.microsoft.com pour la doc
 
ou la msdn livrée avec vs enterprise architect
 
je te renvoie systématiquement a la doc, c'est ce qu'il y a de mieux pour toi :o

n°706880
pc2000
Posté le 23-04-2004 à 11:25:56  profilanswer
 

Tiens j'ai un problème et là je vois vraiment pas la solution pourtant j'ai cherché.
Voilà je fais une requête sur un élément de type ntext(2000) (sous SqlServer) que je neux pas pas changer.
Je fais la requête select element from Table
ET quand je fais  

Code :
  1. string nom=(string)ds.Tables[0].Rows["element"];


 
J'ai systématiquement une exception
Specified cast is not valid.
 
C'est pas convertible le ntext en String ??
Sinon j'ai essayé aussi :
[i]select CONVERT(varchar(2000),element) as nom from Table  

Code :
  1. string nom=(string)ds.Tables[0].Rows[i]["nom"];


 
Et la même erreur ??
Je comprends pas là, ça doit être tout con mais j'arrive pas :(


Message édité par pc2000 le 23-04-2004 à 11:29:47
n°707080
Tamahome
⭐⭐⭐⭐⭐
Posté le 23-04-2004 à 13:52:22  profilanswer
 

string nom=ds.Tables[0].Rows[i]["nom"].ToString();
 
peut etre [:gratgrat]

mood
Publicité
Posté le 23-04-2004 à 13:52:22  profilanswer
 

n°707086
Tamahome
⭐⭐⭐⭐⭐
Posté le 23-04-2004 à 13:53:47  profilanswer
 

sinon  
 
Convert.ToString (ds.Tables[0].Rows[i]["nom"])
 
:o

n°707312
pc2000
Posté le 23-04-2004 à 16:12:31  profilanswer
 

Oui merci Tamahome, en effet, c'était tout con   :sleep:


Message édité par pc2000 le 24-04-2004 à 00:19:03
n°708413
pc2000
Posté le 26-04-2004 à 11:27:50  profilanswer
 

Un nouveau problème,
en mettant ce code dans le fichier .aspx :
 
         

Code :
  1. <form method="post" action="validation.aspx" runat="server">
  2. <asp:Panel id="panel1" runat="server" BackColor="#f5f5f5" Width="600">
  3. </asp:Panel>
  4. </form>


 
Le conteneur Panel contient plein de champs et un bouton (tout est déclaré dans le code behind.)
Le formulaire me redirige toujours vers la page courante (alors que je veux récupérer les valeurs du formulaire dans validation.aspx).
 
Le code HTML généré est :
 

Code :
  1. <form name="_ctl0" method="post" action="ProductDetails.aspx?productID=G372B&amp;Category=G372B" language="javascript" onsubmit="ValidatorOnSubmit();" id="_ctl0">


 
PS : et en enlevant le runat="server" dans le <form ...> ca marche plus (exception..)


Message édité par pc2000 le 26-04-2004 à 11:31:55
n°709051
pc2000
Posté le 26-04-2004 à 19:55:24  profilanswer
 

Personne n'a été confronté à ce problème ?
C'est normal ?

n°710500
titione
addicted
Posté le 28-04-2004 à 10:33:21  profilanswer
 

PC2000 a écrit :

Personne n'a été confronté à ce problème ?
C'est normal ?


 
bon alors c normal :)
dans le framework .NET, le traitement des données se fait dans la présente page et non la page suivante... j'explique :
 
la page se charge normalement..
--> page_init, page_load
on clique sur le bouton qui poste le formulaire
ça recharge la page courante en mode postback (Page.IsPostBack...)
--> page_init, page_load  
et ça applique la méthode du bouton enfin
--> button_onClick
et c'est là que tu traites les données et que tu fais une redirection sous forme de Server.Transfer ou Response.Redirect
 
c le principe même du fonctionnement du framework !
est-ce clair ?


Message édité par titione le 28-04-2004 à 10:36:14
n°710906
pc2000
Posté le 28-04-2004 à 14:31:58  profilanswer
 

En effet, ça répond tout à fait à ma question.
Donc il est inutile de mettre action="validation.aspx" dans la balise <form> ca n'a strictement aucun intérêt ?
Il faut donc traiter l'évènement du clic bouton et faire une redirection.
J'ai fait et ça fonctionne  :)  
 
Merchi bien
 
 
PS : différence entre Server.Transfer & Response.Redirect ?


Message édité par pc2000 le 28-04-2004 à 14:32:25
n°711071
titione
addicted
Posté le 28-04-2004 à 15:50:12  profilanswer
 

ça c la grande question qui dure sous .NET !!
le mieux : http://www.vsnetfr.com/lien.aspx?ID=3617
perso je préfère les Server.Transfer ! t moins paumé dans les pages après (le form correspond à l'URL affiché...)


Message édité par titione le 28-04-2004 à 15:51:10
n°715572
pc2000
Posté le 04-05-2004 à 21:18:02  profilanswer
 

Mon (nouveau) problème :
 
Je pars du Commerce Starter Kit pour réaliser une site de Ecommerce.
Les pages web du projets sont constituées d'une page .aspx (page.aspx) et de deux "user control" .ascx (_menu.ascx et _header.ascx).
Le truc c'est que j'ai besoin de mettre un menu dynamique (formulaire côté serveur) sur toutes mes pages web.
Ce menu dynamique est constitué de listes déroulantes (remplies par les données de la base)  
exemple typique :

Code :
  1. <form runat="server">
  2. <asp:DropDownList id="DropDown1" runat="server" />
  3. <asp:DropDownList id="DropDown2" runat="server" />
  4. <asp:DropDownList id="DropDown3" runat="server" />
  5. </form>


 
Je mets donc ce type dans code dans le fichier _header.ascx.
 
Celà ne pose pas de problème quand la page .aspx ne contient pas de formulaire dynamique mais dès que c'est le cas .. Erreur..
 
 
Une page ne peut comporter qu'une seule balise Form côté serveur.  
Détails de l'exception: System.Web.HttpException: Une page ne peut comporter qu'une seule balise Form côté serveur.
 
 
Normal puisqu'une page ASP.NET ne peut contenir plus d'une balise <form runat="server">.
Je me pose donc la question de la façon d'intégrer ce menu dynamique dans l'ensemble de mes pages web.
 
Utiliser un conteneur ne résoud pas mon problème :(
 
Merci d'avance de l'aide que vous pourrez m'apporter


Message édité par pc2000 le 04-05-2004 à 21:24:22

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

  [ASP.NET/C#] Problème de formulaires côté serveur (update 4/05/04)

 

Sujets relatifs
Problème de taille... de requête!!!!(Excel)nombre de connexion sur un serveur avec api ou wmi ??
[Assembleur] Problème de définition de variable ?connection a un serveur counter strike et recup info en php
Petit probleme :/Probleme Oracle
Probleme de connexion au serveur MySQL sur Mdk 10.0Un problème de disposition !
Plus de sujets relatifs à : [ASP.NET/C#] Problème de formulaires côté serveur (update 4/05/04)


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