djay99
Messages postés22Date d'inscriptionmardi 17 juillet 2007StatutMembreDernière intervention12 mars 2008
-
24 juil. 2007 à 16:58
kikodos23
Messages postés84Date d'inscriptiondimanche 1 juillet 2007StatutMembreDernière intervention 8 janvier 2013
-
19 mars 2008 à 16:59
Bonjour tout le monde,
J'ai un GridView remplit a partir d'une DataTable contenant une colonne de type bool, ce qui me genere automatiquement une colonne avec des CheckBox dans mon GridView. Seulement voila ces CheckBox sont disable et pas moyen de les rendre enable. Voila ce que j'ai tente mais sans succes:
GridViewResult.Rows[1].Cells[3].Enabled = true;
ou la colonne 3 ici, contient ma Checkbox.
Je vous remercie d'avance.
PS: desole pour le manque d'accents, qwerty oblige :/
djay99
Messages postés22Date d'inscriptionmardi 17 juillet 2007StatutMembreDernière intervention12 mars 2008 24 juil. 2007 à 17:54
@_Syl_ : le probleme c,est que je n'ai pas cree de checkBox, elles se sont crees automatiquement par le biais de mon champ bool dans ma dataTable, alors je ne sais pas quoi mettre comme id dans le findControl.
@DeadEye01112: desole pour mon novisme, quand tu parle du ReadOnly active, c'est sur quel composant, mon GridView, ma DataTable, une colonne? Parce que je ne trouve pas cette propriete :/
Merci beaucoup
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs__Syl_
Messages postés66Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention25 février 20082 24 juil. 2007 à 18:19
Ok
Elles sont crées automatiquement, mais comment ?
C'est toi qui a fait une méthode pour ?
C'est une option ou une propriété du GridView ?
L'idée étant de voir s'il n'y a pas moyen de leur attribuer un Id lors de leur création.
Autre piste quand tu affiches ta page dans ton navigateur, jette un oeil au source pour voir quel Id leur est attribué (ca ne sera pas le rigoureusement le même que celui attribué par asp avant de passer en Html mais il s'y retrouvera normalement) (je sais pas si je suis très clair :P)
typiquement quand tu crées une colonne de LinkButton (pour l exemple) dans un gridview l'id (dans le source de la page) est de la forme :
ctl00_ContentPlaceHolder1_GridView1_ctl04_IDdulinkButton
ou IDdulinkButton est l'id spécifié dans la page asp (<asp:LinkButton ID="IDdulinkButton" blbalbalba...)
ca te permettra de voir s'il y a un Id rajouté par asp et si oui quelle tête il a
djay99
Messages postés22Date d'inscriptionmardi 17 juillet 2007StatutMembreDernière intervention12 mars 2008 24 juil. 2007 à 19:02
Merci _Syl_, en fait des que l'on met un attribut de type bool dans la DataTable, il en resulte une checkBox dans le GridView sans que j'ai besoin de la creer. De ce fait, je n'ai donc pas cree d'ID pour mes checkBox, d'ou ma difficulte a y acceder.
Sinon dans le source de ma page asp, voici comment est declaree ma checkBox:
cs__Syl_
Messages postés66Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention25 février 20082 24 juil. 2007 à 20:27
Oui, c'est normal que tu obtiennes une erreur,
Comme j'ai tenté de l'expliqué plus haut (maladroitement je l'admet) l'Id que tu récupères dans la source ne correspond pas exactement à celui que l'on aurait pu attribuer dans la page aspx.
L'erreur vient du fait que tu demandes de trouver un contrôle en fonction d'un Id qu'il aura dans la page html, alors que la fonction FindControl te renvoie un contrôle pour un Id présent dans les attributs de la page aspx
"
typiquement quand tu crées une colonne de LinkButton (pour l
exemple) dans un gridview l'id (dans le source de la page) est de la
forme :
ctl00_ContentPlaceHolder1_GridView1_ctl04_IDdulinkButton
ou IDdulinkButton est l'id spécifié dans la page asp (les Id visibles dans le source sont ceux générés par ASP, et non ceux que l'on a pu éventuellement mettre dans le source ASP.
Ce que l'on peut voir avec l'id "GridViewResult_ctl02_ctl00" que tu récupères dans ton source c'est qu'effectivement les checkbox n'ont pas d'Id avant la génération html.
Soit, on va essayer de faire autrement alors.
On va debugger, (et on est content)
En debuggant, quels sont les contrôles que tu peux trouver dans GridViewResult.Rows[1].Cells[3] ?
Si tu mets une ligne du style
int nbDeControles=GridViewResult.Rows[1].Cells[3].Controls.Count;
ou mieux
ControlCollection maCollec=GridViewResult.Rows[1].Cells[3].Controls;
avec un point d'arrêt, qu'est ce que le
quickWatch te donne ?
Y'a t-il des contrôles de présents ?
Quel tête ils ont ?
Par contre, maintenant que j'ai l'id je peux changer cet id. Par contre une chose m'echappe encore: je suis oblige de faire tourner le debugger afin de connaitre l'id. Ne sachant pas a l'avance combien j'aurais de checkBox, cela risque de se complique, j'aurais bien aime enable toute mes checkbox dans une boucle.
djay99
Messages postés22Date d'inscriptionmardi 17 juillet 2007StatutMembreDernière intervention12 mars 2008 25 juil. 2007 à 16:23
C'est bon en faisant une boucle en gardant "ctl00" comme id, je peux enable toute mes checkBox.
Pendant que je suis j'aurais une autre petite question rapide concernant mon gridView:
comment puis je faire pour recuperer les valeurs de mes checkBox dans mon gridView dans une deuxieme page apres avoir submit mon formulaire contenant mon gridView?
djay99
Messages postés22Date d'inscriptionmardi 17 juillet 2007StatutMembreDernière intervention12 mars 2008 25 juil. 2007 à 22:40
Merci _Syl_ mais je ne vois pas bien quelles methodes presentes dans global.asax me permettrais de recuperer mon gridView dans ma deuxieme page, encore desole pour mon novisme :/
djay99
Messages postés22Date d'inscriptionmardi 17 juillet 2007StatutMembreDernière intervention12 mars 2008 25 juil. 2007 à 23:09
Sinon je crois que je vais ouvrir un autre topic car on deborde un peu du sujet de base la je crois ^^. si tu veux tu peux rejoindre le nouveau topic ;) en tout cas merci de ton aide qui m'a bien fait avance
cs__Syl_
Messages postés66Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention25 février 20082 26 juil. 2007 à 10:55
Je sais pas si le nouveau Topic a été ouvert ou pas, au pire les admins déplaceront les posts qu'ils jugent au mauvais endroit.
Pour le Global.asax, j'ai pas encore appris à le manipuler correctement en 2.0 donc je passe par l'ancienne méthode qui consiste à créer un Global.asax.cs dans lequel je peux déclarer des variables et méthodes globales (utilisables depuis n'importe quelle page)
Dans le Global.asax il faut juste mettre la ligne suivante :
et il faut créer une classe "Global" dans le Global.asax.cs
public class Global : System.Web.HttpApplication
{
//ici tu peux déclarer des variables qui seront accessibles depuis les autres //pages
public Global()
{
//
// TODO: Add constructor logic here
//
}
//les différentes méthodes relatives à la session (qui se trouvent dans le //script du Global.asax généré automatiquement par Visual (Add new Item...))
//les méthodes que tu veux communent à toutes les pages
}
Pour récupérer la valeur d'une variable depuis une page
Global.laVariable;
ou Global.laMethode(); pour une méthode
djay99
Messages postés22Date d'inscriptionmardi 17 juillet 2007StatutMembreDernière intervention12 mars 2008 26 juil. 2007 à 14:56
Ah oki, merci beaucoup _Syl_, je n'avais pas vu l'utilite de global.asax comme ca, je pansait que c'etait juste pour gerer des evenement generaux. Ah bah du coup ca simplifie mon probleme largement^^. Par contre la pour mon projet c est nickel, mais est ce vraiment propre de pratiquer ca, parce que la en fait je vais juste me servir de global pour mettre des donnes?
kikodos23
Messages postés84Date d'inscriptiondimanche 1 juillet 2007StatutMembreDernière intervention 8 janvier 20132 19 mars 2008 à 16:59
saha tous le monde
j'ai ajouter un controle CheckBox dans ma datagridview pour selectionner des lignes mais j'arrive pas a Coché ses checkbox il sont verouer ...???? comment faire pour activier la selection par se controle (CheckBox),et recuperer les linges selectionner
aerci