| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 
 |  
<%@ Page Language="C#" Debug="true" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  >
   <script language="C#" runat="server">
 
      ICollection CreateDataSource() 
      {
         DataTable dt = new DataTable();
         DataRow dr;
 
         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
         dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
         for (int i = 0; i < 9; i++) 
         {
            dr = dt.NewRow();
 
            dr[0] = i;
            dr[1] = "Item " + i.ToString();
            dr[2] = 1.23 * (i + 1);
 
            dt.Rows.Add(dr);
         }
 
         DataView dv = new DataView(dt);
         return dv;
      }
 
      public void ItemsGrid_OnLoad(Object sender, DataGridCommandEventArgs e)
      {
          lblTest.Text = "load Grid";
          lblTest2.Text = "load Grid";
      }
 
      public void maGrilleEditHandler(Object sender, DataGridCommandEventArgs e)
      {
          DataTable dt = new DataTable();
          DataRow dr;
          dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
          dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
          dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
 
          DataGrid test = (DataGrid)sender;
          ItemsGrid.EditItemIndex = e.Item.ItemIndex;
/* utilisation de object sender pour recreer mon tableau de donnees plutot
que de tout recharger \o/ */
          for (int lineNB = 0; lineNB < test.Items.Count; ++lineNB)
          {
 
              dr = dt.NewRow();
 
              for (int colNB = 1; colNB < test.Items[lineNB].Cells.Count; ++colNB)
              {
                  if (test.Items[lineNB].Cells[colNB].Text.Length == 0)
                      dr[colNB - 1] = 0;
                  else
                  dr[colNB - 1] = test.Items[lineNB].Cells[colNB].Text;
              }
              dt.Rows.Add(dr);
          }
          ItemsGrid.DataSource = new DataView(dt);
          ItemsGrid.DataBind();
      } 
 
 
      void Page_Load(Object sender, EventArgs e) 
      {
 
          if (!IsPostBack)
          {
              lblTest.Text = "page_load";
              // Load this data only once.
              ItemsGrid.DataSource = CreateDataSource();
              ItemsGrid.DataBind();
              lblTest2.Text = "page_load";
          }
      }
 
   </script>
 
<head id="Head1" runat="server">
    <title>DataGrid Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>DataGrid Example</h3>
<p><asp:Label ID="lblTest" runat="server" Text="vide"></asp:Label></p>
      <b>Product List</b>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           AutoGenerateColumns="true"
           OnEditCommand="maGrilleEditHandler" EditItemStyle-BackColor="#AAAAAA"
           runat="server">
<EditItemStyle BackColor="#AAAAAA"></EditItemStyle>
           <Columns>  
              <asp:EditCommandColumn EditText="Editer" ButtonType="PushButton" 
              UpdateText="Valider" CancelText="Annuler" HeaderText="Actions"/> 
           </Columns> 
 
         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle> 
 
      </asp:DataGrid>
 
   </form>
   <p><asp:Label ID="lblTest2" runat="server" Text="vide"></asp:Label></p>
 
</body>
</html> | 
Partager