begin process at 2012 05 27 19:47:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ASP & ASP.NET

 > 

Archives ASP & ASP.NET

 > 

ASP.net

 > 

controls ajoutés dynamiquement


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

controls ajoutés dynamiquement

mardi 12 juillet 2005 à 11:51:52 | controls ajoutés dynamiquement

DeitY51

Bonjour, if (!IsPostBack){ // cree les datagrid dynamiquement CreerListeDemande(); // cree les panels contenant les datagrid CreerPanelsDemande(); // ajoute les datagrid dans les panels et les panels dans la page AjouterComposants(); // bind les datagrid aux donnees BindListeDemande(); for (int i=0;i
mardi 12 juillet 2005 à 12:38:51 | Re : controls ajoutés dynamiquement

jesusonline

Membre Club Administrateur CodeS-SourceS
L'erreur je peux te l'expliquer, la solution j'ai pas trop le temps d'y reflechir :-/

donc : le viewstate sert à sauvegarder des paramètres entre les pages, pour cela asp.net a un dictionnaire qui s'appelle viewstate, quand il génére la page, il va regarder le dico, puis va le serializer en base 64, puis le mettre dans le champ caché __viewstate (regarde la source HTML de la page) pour qu'il puisse serializé il faut qu'il y a des string & co or, un datagrid c'est un objet trés complexe ... par contre tu peux serializer ton dataset (beurk)

Je vois pas vraiment de possibilité, la création de controle à la volée c'est trés pénible pour les postbacks ... car il recharge le viewstate aprés avoir instancié les controles :-/

Ce que tu pourrais eventuellement faire, j'ai jamais testé cette idée, mais tu overrides le new de la page, tu declare tes datagrid

protected witheevents dg as datagrid

public sub new()
if page.ispostback
dg = new datagrid blabla

end sub

Je suis pas du tout sur que ca fonctionne, je viens d'avoir cette idée, mais si j'ai rien oublié en théorie ca devrait fonctionner :p

Sinon sais tu le nombre maximum de datagrid que tu peux avoir ? moins de 10 ?



Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
mardi 12 juillet 2005 à 14:00:27 | Re : controls ajoutés dynamiquement

DeitY51

la question est : a quel moment est appele le constructeur ?
mardi 12 juillet 2005 à 14:49:24 | Re : controls ajoutés dynamiquement

DeitY51

Et en plus, pour initialiser les controls il faudrait que j'appelle le constructeur de la super class. Mais je sais pas comment on fait (en C#).
mardi 12 juillet 2005 à 14:54:20 | Re : controls ajoutés dynamiquement

jesusonline

Membre Club Administrateur CodeS-SourceS
Le constructeur est la premiere chose qui est appellé dans une classe :D


en C#

public class toto : personne
{
void toto()
{

}
}

J'espere pas dire de betises car C# n'est pas mon fort :p



Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
mardi 12 juillet 2005 à 15:28:59 | Re : controls ajoutés dynamiquement

DeitY51

Bon... d'accord je suis pas tres bon mais de la a me dire que le constructeur est la premiere chose appelee dans une classe... :-/ lol non mais pour un objet de type Page, il est appele a chaque appel de la page? Si oui du code dans le constructeur ou dans le Page_load c'est pareil. Non ? Sinon la syntaxe du constructeur est la bonne mais ma question est plutot comment appeler le constructeur de la super classe dans le constructeur de ma classe fille ( en java c'est 'super()' ).
mardi 12 juillet 2005 à 17:12:10 | Re : controls ajoutés dynamiquement

jesusonline

Membre Club Administrateur CodeS-SourceS
euh ... on appel pas un constructeur !!!

le constructeur est automatiquement appellé quand on instancie le control

Control ctrl = new ctrl();


mais la je vois pas pourquoi une classe fille ???? ce que je te dis c'est redefinir le new de ta page !

Public Class Tapage : System.Web.UI.Page
{


// la tu declares le datagrid
//Protected WithEvents ctrl() as Datagrid ' <== mettre ca en C#

void Tapage()
{

// ici tu peux l'ajouter

}


void page_load()
{
la t'en fait comme d'habitude
}

}


et le page_load est trés loin d'etre la premiere chose qui est appellé au sein de la classe, il y a beaucoup de choses avant, il y a meme des event : init ...

en mettant tes controles dans le constructeur de la classe tu vas faire à peu prés comme si tu les mettais dans la page.

En fait, lorsque tu fais ta requete, tu vas charger tapage.aspx, la il va regarder toutes tes balises runat=server puis va les charger dans la classe spécifié dans le header ...

donc les controles qui sont dans la page, sont chargé dans le new (je sais pas exactement dans quelle méthode, j'ai pas été regardé aussi profond) en instanciant les controles dans le new tu n'auras donc aucune difference, la seule chose qui pourrait t'emmerder c'est qu'il faut que tu aie une collection de datagrid, donc pour t'abonner aux events, ce sera un poil plus chiant.

Ce truc m'interresse donc des que j'ai le temps j'essaierais de faire ce que j'ai en tete.



Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
mercredi 13 juillet 2005 à 08:58:15 | Re : controls ajoutés dynamiquement

DeitY51

je vais essayer ta solution. Elle me parait interessante et t'as raison, apparemment g pas besoin d'appeler le constructeur. Mais juste pour clarifier le coup du constructeur je voudrais t'expliquer a quoi je pensais : Public Class Tapage : System.Web.UI.Page cette ligne denote bien que ma clase TaPage est une classe heirtee de la classe Page. Dans ce cas, si le constructeur de la super classe Page fait beaucoup de choses (comme instancier des objet dont je n'ai pas connaissance ou initialiser des variables, ...) alors quand je vais overrider le constructeur, tout cela ne sera plus fait (un override n'est pas un ajout mais un remplacement). Donc en Java (j'ai que cet exemple la en tete), dans le constructeur de la classe fille, on peut appeler le constructeur de la super classe (avec le mot clef super) afin de ne pas reecrire ce qu'il contenait. Sinon tout serait ecrase. Je sais pas si j'ai ete clair :-/ Je te tien au courant si ta solution marche. En attendant, merci.
mercredi 13 juillet 2005 à 10:18:06 | Re : controls ajoutés dynamiquement

DeitY51

Bon je suis tombe sur un os. apparemment ca pourrait marcher ta solution mais g besoin de ma base de donnees pour creer les controles. Or, le pb c'est que ma connexion est dans la SessionState (parceque les utilisateurs n'attaquent pas tous la meme base de donnees). Or le SessionState n'est pas encore accessible dans le constructeur (a moins que le constructeur d'origine de la classe Page fasse une manoeuvre pour mettre le sessionstate a disposition). Ce qui me fais dire ca c'est cette erreur : Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Web.HttpException: Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive Donc apparement il faut mettre une variable a true mais ou (oui c deja mis dans la directive @page)? Mystere! lol
mercredi 13 juillet 2005 à 12:36:44 | Re : controls ajoutés dynamiquement

jesusonline

Membre Club Administrateur CodeS-SourceS
pour appeller le constructeur de la classe mere :


public sub new()
mybase.new()

end sub

j'avais pas compris la question :$ et c'est vrai que si tu le met pas, je sais pas si ca va marcher :p

pour l'erreur, tu n'auras accés absolument à rien ! meme pas un request.querystring :p (peut etre que si mais je pense pas)

si le nombre de datagrid est décidé dans la bdd :/ est surtout que la connectionstring est dans une variable session, je sais pas trop comment tu pourrais faire pour l'instant peut etre en faisant

httpcontext.current.qqchose.session ?

bon courage :p


Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr

1 2

Cette discussion est classée dans : datagrid, dynamiquement, viewstate, ajoute, panels


Répondre à ce message

Sujets en rapport avec ce message

ViewState et Datagrid (avec WebControl à l'intérieur) [ par jibea ] Bonjour,Je développe une application ASP.NET dans laquelle j'utilise des datagrids sur de gros volumes de données (exigence nécessaire). Pour résoudre DataGrid et ViewState [ par benjiiim94 ] Bonjour, J'ai un problème pour créer un datagrid qui utilise le viewstate, plus précisemment ce problème l'événement onItemCreated. Dans celui-ci j' ViewState dans controles imbriqués [ par benjiiim94 ] Bonjour, J'utilise un controle datagrid dans un controle repeater. Lors d'une publication, les données de mon datagrid ne sont pas actualisés, pourta datagrid avec templates column creer dynamiquement [ par jusrob ] Bonjour,quand je fait update(enregistrer), add(ajouter) ou delete(détruire) dans un datagrid avec d Probleme evenement sur un control d'un datagrid [ par peps89 ] Bonjour,J'ai créé un Datagrid possédant une colonne avec une dropdowlist et une autre contenant une textbox et j'aimerai préremplir la textbox en fonc problème DataGrid [ par threadom ] Bonjour,Je suis actuellement en trian de coder une application web en c#. J'utilise un DataGrid qui se construit dynamiquement grâce à l'option "Créer problème DataGrid [ par threadom ] Bonjour,Je suis actuellement en train de coder une application web en asp.net/c#. J'utilise un DataGrid qui se construit dynamiquement grâce à l'optio Condition if pour affichage dans un datagrid [ par zoum2000 ] Bad Brown FoxOyé oyé,J'ai pas mal d'Asp à mon actif mais depuis peu, je dois développer en asp.net 2.0 et vb 2005.Voilà mon problème.<img src="/imgs2/ Action sur datagrid avec l'evenement EditCommand [ par visualresine ] Bonjour,Je charge des infos dans une datagrid puis ensuite grace a l'evenement EditCommand, je recupere les infos de la ligne et j'ouvre une autre pag Attributes.Add(...) sur un datagrid [ par visualresine ] J'essaie d'ajouter une action sur mon datagrid.Je voudrais afficher une msgbox (en javascript) lorsque je selectionne ma ligne en cliquant sur une col


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,484 sec (3)

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