Controle Utilisateur hérité du gridview

Résolu
lolowan Messages postés 15 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 11 novembre 2007 - 10 nov. 2007 à 01:04
lolowan Messages postés 15 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 11 novembre 2007 - 11 nov. 2007 à 18:20
Bonjour,

J'ai crée une librairie avec un contrôle utilisateur dérivant du GridView
 Voici son code

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace LBAWebControlLibrary
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:LBAGridView runat=server></{0}:LBAGridView>")]
[Designer("LBAGridViewDesigner","System.Web.UI.Design.WebControls.GridViewDesigner")]
public class LBAGridView : GridView
{
[Bindable(true)]
[Category("LBA")]
[DefaultValue("")]
[Localizable(true)]
public string Trigramme
{
get
{
String s = (String)ViewState["Trigramme"];
return ((s == null) ? String.Empty : s);
}
set
{
ViewState["Trigramme"] = value;
}
}
protected override void RenderContents(HtmlTextWriter output)
{
output.Write(Trigramme);
}
}
}

C'est très simple pour le moment cela rajoute une propriété TRIGRAMME au niveau de la fenêtre de propriété.

J'ai compilé ma bibliothèque et j'ai utilisé mon control dans une page web. En mode DESIGN je voyais uniquement un carré gris.

J'ai donc ajouté un désigner

using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI.Design.WebControls;
namespace LBAWebControlLibrary
{
class LBAGridViewDesigner:GridViewDesigner
{
LBAGridView _LBAGridView ;
public override string GetDesignTimeHtml()
{
string designTimeHtlm = string.Empty;
_LBAGridView = (LBAGridView)Component;
return base.GetDesignTimeHtml();
}
public override void Initialize(System.ComponentModel.IComponent component)
{
_LBAGridView = (LBAGridView)component;
base.Initialize(component);
}
}


Cela n'a rien changé. De plus lorsque je lance ma page les informations ne sont pas affichées bien que ma datasource soit correcte. Pouvez-vous m'aider

Merci !  



LoloWan

7 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
11 nov. 2007 à 10:45
Tu appliques ton skin via un fichier skin ? dans ce cas oui c'est normal, faut mapper le fichier skin avec ton controle

Pour mettre un tagprefix spécifique ca se passe en 2étapes :

faut rajouter l'attribut ToolboxData au niveau de ton contrôle et l'attribut [Assembly:tagprefix("Namespace", "tontag")] au niveau de l'assembly

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
3
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
10 nov. 2007 à 01:10
Bonsoir,

Pas étonnant que ton contrôle n'affiche rien, tu redefinis le rendercontent en mettant seulement ce que tu veux ... il fat pas oblier de faire un base.RenderContents(output), mais tu risques d'avoir d'autres problèmes en faisant comme ca ... Que veux tu faire exactement ? je te conseil d'utiliser un CompositeControl ou alors de surcharger la méthode CreateChildControls et de mettre ton contenu via un literalcontrol.

Pour le designer, pas besoin d'en mettre un particulier, le prblème venait surement à cause de la redefinition vide de rendercontents, sinon applique directement le GridViewDesigner sans en créer un nouveau. Ca devrait fonctionner.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
lolowan Messages postés 15 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 11 novembre 2007
11 nov. 2007 à 09:26
Merci,

cela marche en effet mieux.

Une autre petite question. En fait deux :
- Le skin défini pour les gridview de mon thème ne fonctionne par sur mon controle. Faut-il en définir un spécifique pour mon controle hérité et si oui comment ?
- Est-il possible de définir au niveau de mon controle un tagprefix spécifique.

   
0
lolowan Messages postés 15 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 11 novembre 2007
11 nov. 2007 à 10:53
Super ca marche. Merci beaucoup et a bientôt je pense !!!!
   
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lolowan Messages postés 15 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 11 novembre 2007
11 nov. 2007 à 14:29
Encore une petite question :
Et comment faire pour ajouter dans ma grid une template colonne par défaut (ma propre colonne avec mes boutons actions)

Merci par avance

   
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
11 nov. 2007 à 14:31
Par défaut, ca devient plus compliqué là :-p

deux solutions soit tu le fais via le Toolboxdata (c'est très simple) soit il faut que tu fasses l'init dans le createchildcontrols & co

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
lolowan Messages postés 15 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 11 novembre 2007
11 nov. 2007 à 18:20
tu aurais un exemple

   
0
Rejoignez-nous