Als nächstes gestalten wir unser Grid editierbar. Dabei gibt es eine Menge zu beachten.
Edit und nicht Edit Spalten
Editfelder mit besonderen Werten (zb Checkbox)
Buttons zum bearbeiten und speichern
Design im Edit Mode
Das einbauen der Edit Funktion wird über das Attribut oneditclick aktiviert. Dort wird die Funktion angegeben, die sich um das editieren kümmert.
        | <asp:DataGrid id=DataGrid1 runat="server" ForeColor="Black"       oneditcommand="editClick"> | 
Die Funktion muss zwei Paramter enthalten, der zweite muss vom Typ DataGridCommandEventArgs sein.
        public sub editClick(Source as Object, E as       DataGridCommandEventArgs) end sub | 
Um Einfluss auf das Design zu haben, muss das komplette Grid neu gestaltet werden. Als erstes muss das Automatische erstellen der Spalten abgeschaltet werden. Dies passiert über  autogeneratecolumns. Dann muss jede Spalte einzeln erstellt werden. Eine Spalte die nicht editierbar sein soll, muss auf Readonly gesetzt werden. Das erweist sich zb für eine ID Spalte als nützlich.
Um jedesmal beim Reload die Daten neu einzulesen, wurde die Funktion newBind geschaffen. Diese kapselt die den Datenzugriff. Es soll ja nach jedem Button Click auch wieder Daten zur Verfügung stehen.
Für jede Funktion wie Update, Edit oder Cancel muss eine eigene Behandlung programmiert werden. So muss zb beim Editieren die Spalte ausgewählt werden. Dies geschieht über den Index. Wenn Sie den Index auf -1 setzen verlassen Sie den Edit Mode wieder.
        |         <%@ Page Language="vb" %> <%@ Import       Namespace="System.Data"%> <%@ Import       Namespace="System.Data.SQL"%>       <html><head></head>         <body> <script runat=server>       public sub Page_Load(Source as Object, E as EventArgs)        if not Page.IsPostBack then            newBind()     end if   end sub public       sub newBind()  dim DS as new DataSet  dim cmd as       SQLDataSetCommand  cmd= new SQLDataSetCommand("select * from       authors","server=localhost;database=pubs;uid=sa;pwd=")  cmd.FillDataSet(DS,"autoren")  DataGrid1.DataSource=DS.Tables(0)DefaultView  DataGrid1.Databind() end       sub       public sub editClick(Source as Object, E as       DataGridCommandEventArgs)  DataGrid1.EditItemIndex=E.Item.ItemIndex    newBind() end       sub public sub UpdateClick(Source as Object, E as       DataGridCommandEventArgs)  DataGrid1.EditItemIndex=E.Item.ItemIndex  newBind() end       sub public sub CancelClick(Source as Object, E as       DataGridCommandEventArgs)  DataGrid1.EditItemIndex=-1  newBind() end       sub </script>           <form id="grid1" method="post"       runat="server"> <asp:DataGrid id=DataGrid1 runat="server"       ForeColor="Black" oneditcommand="editClick" onupdatecommand="updateclick"       oncancelcommand="CancelClick"       autogeneratecolumns="False">                           <property       name="Columns">                             <asp:EditCommandColumn                             buttontype="PushButton"                             canceltext="Abbruch"                             edittext="Edit"                             updatetext="Update"       />                            <asp:boundcolumn       datafield="au_id"                             headertext="ID"                             readonly="True"                            />                             <asp:boundcolumn       datafield="au_fname"                             headertext="Name"                             readonly="false"                            />                             <asp:boundcolumn       datafield="au_lname"                             headertext="Name"                             readonly="false"                            />                           </property>                                            </asp:DataGrid>           </form>         </body></html>
   |