Gestion de formulaire

Fjohn666 Messages postés 6 Date d'inscription samedi 24 juillet 2004 Statut Membre Dernière intervention 2 novembre 2008 - 22 juil. 2008 à 17:41
Fjohn666 Messages postés 6 Date d'inscription samedi 24 juillet 2004 Statut Membre Dernière intervention 2 novembre 2008 - 27 juil. 2008 à 03:12
Bonjour à tous,

je suis entrain de faire une gestion de formulaire en c# mais je me retrouve confronté à un (ou plusieurs )problemes : Le principe est que le client peut creer autant de formulaires qu'il veut avec les controles qu'il veut...
J'ai une classe formulaire qui contiendrait, entre autre, une collection de control (webcontrol, calendarextender (de la dll ajaxcontroltoolkit) ... tout ce qui herite de pres ou de loin à control).
Mon problème est que j'aimerai bien avoir une classe de control un peu plus fournie :
          - je voudrai associer toujours un label à un controle
          - gerer sa disposition par rapport au control lui même (au dessus, sur la gauche )
          - gerer l'ordre d'affichage de chaque controle
          - faire une association entre plusieurs controles pour gérer leur visibilité mais pourquoi pas aussi des données liées (genre listes déroulantes liées)
d'aprés vous quel est le meilleur moyen pour creer cette classe ? : Creer une classe MonControl en association (composition) avec la classe control du framework ? Ce qui renvendrait à ajouter un attribut de type control dans ma classe ? Ou peut être creer des classes qui heriterai des controles existants ? mais ca me semble lourd à gérer

Ensuite mon problème viens de la récuperation des données que l'utilisateur aura pris soin de renseigner :
Je peux trés bien parcourir le panel contenant mon control pour récuperer tous les controles de ce dernier. Cependant, a ma connaissance, il n'existe pas de methode universelle pour recuperer une valeur de chaque controle. Dois-je faire quelque chose du genre ? :

       foreach(Control c in MonPanel.Controls){
          switch(c.getType())
                case "textbox" :
                      .....
    }
J'espere avoir été assez clair, sinon n'hesitez pas a me demander plus d'info, je vais suivre ce topic de pret ^^
Au pire connaissez vous quelqu'un qui ait deja fais ce genre d'application( j'ai du mal a croire que je sois le seul necessitant en la matière ;) ). J'ai vu http://www.aspfr.com/code.aspx?ID=21286 mais je souhaites aller plus loin que cet exemple.

1 réponse

Fjohn666 Messages postés 6 Date d'inscription samedi 24 juillet 2004 Statut Membre Dernière intervention 2 novembre 2008
27 juil. 2008 à 03:12
Rebonjour à tous,

j'ai avancé dans mon problème mais je me retrouve avec une erreur un peu moins complexe à expliquer ;) :

j'ai une classe formulaire et une fonction render_formulaire pour m'afficher le formulaire et une fonction bt_click a appeler.
class Formulaire{
//....
  public Panel renderFormulaire()
        {
            if (renderCache == null)
            {
                Panel FormPanel = new Panel();
               //...
                Button bt = new Button();
                bt.Text = "Valider";
                bt.Click += new EventHandler(bt_Click);
                FormPanel.Controls.Add(bt);
                renderCache = FormPanel;
                return FormPanel;
            }
            else return renderCache;
        }

   void bt_Click(object sender, EventArgs e)
        {
            Values = new Hashtable();
            foreach (MF_Control m in this.ListeControls)
            {
                m.get_ControlValue(ref Values);
            }
            foreach (DictionaryEntry d in Values.Keys)
            {
                System.Web.HttpContext.Current.Response.Write(d.Key.ToString() + " --> " + d.Value.ToString() + "
");
            }
        }
}

Mon problème est qu'il ne rentre jamais dans cette fonction bt_click ... alors que mon formulaire est bien recréé au chargement de ma page ... est ce parceque ma fonction se trouve dans un objet ?

merci d'avance pour voir aide :)
0
Rejoignez-nous