kallahan03
Messages postés31Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention31 mars 2006
-
10 mars 2006 à 17:54
pholie60
Messages postés1Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention27 novembre 2007
-
27 nov. 2007 à 10:55
Bonjour à tous,
Voila mon problème :
Je souhaite utiliser un gridview pour ajouter/modifier/supprimer des données d'une table avec relations n/n (4 colonnes dont 2 clés étrangères)
J'ai ajouté dans le footer de chaque colonne modèle le controle qui va bien :
1ère colonne un dropdownlist (ddl1), c'est le code promo d'un article en clé étrangère
2ème et 3ème colonne un textbox (tb1 et tb2)
4ème colonne le linkbutton Ajouter (lkb1)
La 2ème valeur (le code de l'article) pour l'autre clé étrangère je la récupère dans un querystring
Le problème c'est que au début, il n'y a pas d'enregistrement dans la base et donc le gridview ne s'affiche pas. On ne peut même pas afficher uniquement le footer en cas d'absence de données, sur le net pas mal de monde pose la question, sans réponse.
Résultat, impossible d'insérer des données à moins de faire un formulaire pour insérer la 1ère ligne à chaque nouvel article (pas terrible, on ne profite pas de l'asp.net 2.0, au fait j'utilise Visual web developer).
J'ai pensé à utiliser le EmptyDataTemplate (la zone qui est affichée lorsque le gridview est vide) et d'ajouter un dropdownlist + un button Ajouter, en cliquant je ferai un Insert() sur le SqlDataSource et ensuite je mettrai en mode edition la seule ligne de mon gridview afin de compléter les informations (en + mon footer s'affichera). Le problème c'est que je n'arrive pas à accéder aux webcontrols présents dans ce EmptyDataTemplate. Apparement il est de type System.Web.UI.CompiledTemplateBuilder. Comment accéder à ses controles enfants ?
Avez-vous une idée ? Existe-t-il un autre moyen pour afficher le footer d'un gridview vide ?
Dans les commandes du gridview, il existe le button et la commande Nouveau (ou New) pour créer des lignes. Je reconnais avoir du mal à utiliser cette commande contrairement à modifier ou supprimer. Comment l'utiliser ?
En fait pour accéder aux web controls du EmptyDataTemplate d'un gridview :
FindControl works only at a "naming container" level, and your DDL's naming container is the gridview row or template containing your EmptyData controls. One way around this is to use the button's naming container to find the other controls, since you already have a reference to the button clicked, through the "sender" argument:
Dim ddlNumPpl As DropDownList = CType(sender, Button).NamingContainer.FindControl("ddlNumPpl")
pholie60
Messages postés1Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention27 novembre 2007 27 nov. 2007 à 10:55
Bonjour,
Je dois avoir le meme probleme.
Je veux afficher un datagrid (vide) et qui est rempli au fur et a mesur de la saisie dans le pied de page.
Le souci est que le DG n'est pas visible au chargement de la page.
Comment faire ? (je n'ai pas compris la solution décrite précédemment).
Merci
pholie60