begin process at 2012 05 27 20:53:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

WebControl

 > 

Datagrid crée en code-behind et mode édition


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

Datagrid crée en code-behind et mode édition

mardi 7 octobre 2008 à 16:46:21 | Datagrid crée en code-behind et mode édition

zoullou007

mardi 7 octobre 2008 à 16:56:16 | Re : Datagrid crée en code-behind et mode édition

zoullou007

Bonjour,

Désolé il y a eu un petit problème dans l'envoi du message.

Donc je viens en espérant que quelqu'un pourra m'aider.
J'essaye d'avoir une page ou j'ajoute en code-behind des datagrid attaché à des datatables elles aussi créés dynamiquement. Jusque la j'ai réussi, la ou je coince c'est que je voudrais pouvoir utiliser le mode édition des datagrid, j'ai donc ajouté une "EditCommandColumn" à mes datagrid et j'ai attaché une méthode à l'évènement UpdateCommand. Dans celle ci j'ajoute des textbox dans la ligne ou l'édition à été demandé. mais lors du postBack je ne retrouve pas les données rentrées par l'utilisateur.
Je pense donc à un problème de  cycle de vie mais je ne vois pas où.

voici mon bout de code

      protected void Page_Init(object sender, EventArgs e)
        {
                DataSetTableTableAdapters.IDOC_STRUCTTableAdapter adapt =
                                          new TestAdministrationSAP.DataSetTableTableAdapters.IDOC_STRUCTTableAdapter();
                TestAdministrationSAP.DataSetTable.IDOC_STRUCTDataTable table ;
                table = adapt.GetDataByTables_Struct("I407%");
               
                DataSet dataOfIDOC = new DataSet();
                foreach (TestAdministrationSAP.DataSetTable.IDOC_STRUCTRow name in table.Rows)
                {
                    Oracle.DataAccess.Client.OracleDataAdapter orAdapter =
                        new Oracle.DataAccess.Client.OracleDataAdapter("SELECT * FROM " + name.NOM_TABLE,
                                        System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringSAP"].ConnectionString);
                    orAdapter.Fill(dataOfIDOC, name.NOM_TABLE);
                }

                Hashtable nomIndex = new Hashtable();

                foreach (DataTable dt in dataOfIDOC.Tables)
                {
                    DataGrid dg = CreateDataGrid(dt);
                    if (table.Where(o => o.NOM_TABLE == dt.TableName).FirstOrDefault()["ID_PERE"] == DBNull.Value)
                    {
                        Panel pan = new Panel();
                        pan.ID = dt.TableName + "pan";
                       pan.CssClass = "space";

                       Label nom = new Label();
                        nom.ID = dt.TableName+"lb";
                        nom.Text = dt.TableName;

                        CollapsiblePanelExtender collapse = new CollapsiblePanelExtender();
                        collapse.TargetControlID = pan.ID;
                        collapse.ID = dt.TableName + "collapse";
                        collapse.ExpandControlID = nom.ID;
                        collapse.CollapseControlID = nom.ID;

                        this.Panel1.Controls.Add(collapse);
                        pan.Controls.Add(dg);
                        this.Panel1.Controls.Add(nom);
                        this.Panel1.Controls.Add(pan);
                        nomIndex.Add(dt.TableName, pan);
                    }
                    else
                    {
                   

                        string id_pere = table.Where(o => o.NOM_TABLE == nom.Text).FirstOrDefault().ID_PERE;
                        string name = table.Where(o=> o.ID_TABLE == id_pere).FirstOrDefault().NOM_TABLE;
                        ((Panel)nomIndex[name]).Controls.Add(nom);
                     
                        Panel pan = new Panel();
                        pan.ID = dt.TableName + "pan";
                        pan.CssClass = "space";

                        Label nom = new Label();
                        nom.Text = dt.TableName;
                        nom.ID = dt.TableName+"lb";

                        CollapsiblePanelExtender collapse = new CollapsiblePanelExtender();
                        collapse.TargetControlID = pan.ID;
                        collapse.ID = dt.TableName + "collapse";       
                        collapse.ExpandControlID = nom.ID;
                        collapse.CollapseControlID = nom.ID;

                        pan.Controls.Add(dg);
                       ((Panel)nomIndex[name]).Controls.Add(pan);
                       this.Panel1.Controls.Add(collapse);
                        nomIndex.Add(dt.TableName, pan);
                    }
                }
                #endregion
        }

        private DataGrid CreateDataGrid(DataTable dt)
        {
            DataGrid dg = new DataGrid();
            dg.ID = dt.TableName + "dg";
          
            dg.DataSource = dt;
               EditCommandColumn editColumn = new EditCommandColumn();
                editColumn.ButtonType = ButtonColumnType.LinkButton;
                editColumn.CancelText = "Annuler";
                editColumn.EditText = "Editer";
                editColumn.HeaderText = "Editer";
                editColumn.UpdateText = "Sauver";
                dg.CancelCommand += GridView_RowEditing;
                dg.UpdateCommand += GridView_RowEditing;
                dg.DataKeyField = "ID";
                dg.Columns.Add(editColumn);
            dg.DataBind();
            dg.EditCommand += GridView_RowEditing;
            return dg;
        }

        protected void GridView_RowEditing(object sender, DataGridCommandEventArgs e)
        {
            if (e.CommandName == "Edit"){
               
                for (int i = 1; i < e.Item.Cells.Count; i++)
                {
                    ((DataGrid)e.Item.NamingContainer).EditItemIndex = e.Item.ItemIndex;
                    TextBox t = new TextBox();
                    t.ID = e.Item.Cells[i].ID + "txt"+i;
                    t.Text = e.Item.Cells[i].Text;
                    e.Item.Cells[i].Controls.Add(t);
                }
           
           
            }
        }

 Merci d'avance et encore désolé pour le message vide
mardi 7 octobre 2008 à 20:56:30 | Re : Datagrid crée en code-behind et mode édition

ggtry

Bonsoir,

D'après ce que tu montres, ne manque-t-il pas l'update sql pour la mise à jour de ta table ?

GGtry


Cette discussion est classée dans : code, datagrid, crée, mode, behind


Répondre à ce message

Sujets en rapport avec ce message

datagrid [ par lefevre00 ] Bonjour j'ai crée un datagrid dans mon code behind avec une requete sql et je souhaite ajouter un bouton afin de pouvoir sélectionner une ligne, récup Atteindre des Controls dans un Datagrid depuis le Code-Behind [ par azraeht ] Salut! Je cherche depuis 2 jours la solution à mon problème, mais en vain... J'ai un dataGrid dans lequel j'ai placé des contrôles (textBox et DropD DataGrid en série [ par theoorleans45 ] Bonjour,Voilà : j'ai une requête qui me retourne des éléments triés par catégorie.Je voudrais obtenir à l'affichage le nom de la catégorie avec en des Popup en Code-Behind C# [ par ric2000 ] Bonjour. Je suis en train de créer un site web qui permet de visualiser des documents Crystal Reports. Pour que l'utilisateur puisse entrer les p DataBinder Code Behind [ par Myke ] <ItemTemplate&g 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 code behind + html [ par emmanuel9 ] Bonjour à tous, J'ai une ArrayList de chaine et je voudrais afficher dynamiquement sur ma page en asp.net ces chaînes sous forme de label donc je fa [Datagrid] Ouvrir un datagrid en mode edition , avec qu'une ligne et vide [ par Dyr3e ] Bonjour, J'ai 2 problemes principaux.  Le 1er etant que je souhaiterais afficher un datagrid sans valeur a l'interieur, juste avec le nom des colonnes Ouverture d'une page Aspx via le code behind [ par AnneLevefaude ] Bonjour,Ma question va sans doute vous paraitre facile, mais je dois avouer que je ne sais pas comment m'y prendreEst-il possible dans le code behind recuperer propriété css dans le code behind [ par lilippx ] Salut à tous, mon petit soucis :                                 </asp:contentplaceholder&gt


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

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