Search Search

#1 worldwide
FREE Coding Lessons

since 1996
   THE BEST WAY to learn ASP & Asp.net!
Advertise Here!
click for details
Credits Host:
DiscountASP.net
Server Admin:
The "Team"
Contact Info.
Charles M. Carroll
<Asp.net blog>
<personal site>
[prev. Lesson]  C# - DataGrid Editing
     [next Lesson]  Student: XML Book Editing by PC

DataGrid Events (Sort, Edit, Delete) by Charles Carroll

This page demonstrates how to render an XML file as a grid. It demonstrates the various events and behavior a DataGrid exhibits that makes sorting, deleting and other tasks easy.

Below  we will demonstrate the events without any code that affects the data so you see the event model.

the Docs have some example that do the data access in conjunction with the events @ http://www.aspng.com/quickstart/aspplus/doc/webdataaccess.aspx

You may find you want more column formatting and:
http://www.aspng.com/learn/columnbinding.aspx shows more about adding custom columns.

   filename=\experiments\bookdata\booksgridevents.aspx

<Test Script Below>


<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<html>
<script language="VB" runat="server">

Sub Page_Load(Src As Object, E As EventArgs) 
        If Not (IsPostBack)
            DataLoad("isbn")
        End If
End Sub

Sub DataLoad(parmsort as string)
         Dim ds As New DataSet
        Dim FS As New FileStream(Server.MapPath("/experiments/data/books.xml"), FileMode.Open)
        ds.ReadXml(FS)
        Dim dv1 as new dataview(ds.Tables(0))
         dv1.Sort = parmsort
            'dv1.RowFilter = "city='Albany'" 
        MyDataGrid.DataSource = dv1
        MyDataGrid.DataBind()
        FS.close()
END SUB

Sub DataSort(Src As Object, E As DataGridSortCommandEventArgs) 
    ' Bug if we sort, then Edit Item Becomes Wrong
    IF MyDataGrid.EditItemIndex=-1 THEN
        DataLoad(e.sortexpression)
    ELSE
        response.write ("Can't sort until editing is done!")
    END IF
End Sub   

Sub DataDelete(Sender As Object, E As DataGridCommandEventArgs)
    DIM deletekey as string
    IF MyDataGrid.EditItemIndex=-1 THEN
        deletekey=MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))
        response.write ("deleted " & deletekey)
    ELSE
        response.write ("Can't delete until editing is done!")
    END IF
END SUB


Sub DataEdit(Sender As Object, E As DataGridCommandEventArgs)
        DIM editkey as string
        MyDataGrid.EditItemIndex = Cint(E.Item.ItemIndex)
        editkey=MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))
        'response.write ("To Be Edited" & editkey)
        DataLoad("")
End Sub

Sub DataCancel(Sender As Object, E As DataGridCommandEventArgs)
        MyDataGrid.EditItemIndex = -1
        response.write ("edit was cancelled")
        DataLoad("")
End Sub

Sub DataUpdate(Sender As Object, E As DataGridCommandEventArgs)
        DIM editkey as string
        MyDataGrid.EditItemIndex = -1
       editkey = MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))
       response.write ("To Be Updated " & editkey)
        DataLoad("")
       ' howmanycols = E.Item.Cells.Count
End Sub

</script>

<body>

<h3><font face="Verdana">The Best Books Ever</font> 
<span runat="server" id="MySpan"/></h3>

<form runat="server">
<ASP:DataGrid id="MyDataGrid" runat="server"

   AllowSorting="true"
   OnSortCommand="DataSort"
   OnDeleteCommand="DataDelete"
   OnEditCommand="DataEdit"
   OnCancelCommand="DataCancel"
   OnUpdateCommand="DataUpdate"   
   
	DataKeyField="isbn"

   Width="100%"
   BackColor="white" 
   BorderColor="black"
   ShowFooter="false" 
	CellPadding=3 
   CellSpacing="0"
   Font-Name="Verdana"
   Font-Size="8pt"
   Headerstyle-BackColor="lightblue"
   Headerstyle-Font-Size="10pt"
   Headerstyle-Font-Style="bold"
   MaintainState="true"
	>

     
     
    <Columns>
      <asp:ButtonColumn Text="Delete Book" CommandName="Delete"/>
     
      <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" ItemStyle-Wrap="false"/>
    </columns>
</ASP:DataGrid>

</form>
    
 </body>
</html>
By the way, here is the XML source for this example:
   filename=\experiments\bookdata\books.xml

<Test Script Below>


<books>
    <book>
    <isbn>0070653623</isbn>
    <author>Jack Trout, Steve Rivkin</author>
    <title>The Power of Simplicity</title>
    <category>selfhelp</category>
    <comments>A Real Fun Read</comments>
    </book>
    
    <book>
    <isbn>0887306667</isbn>
    <author>Al Reiss, Jack Trout</author>
    <title>22 Immutable Laws of Marketing</title>
    <category>marketing</category>
    <comments>This team offers more profound advice about creating world class marketing campaigns that will be viable for a hundred years.</comments>
    </book>

    <book>
    <isbn>0887309372</isbn>
    <author>Al Reiss, Laura Reiss</author>
    <title>22 Immutable Laws of Branding</title>
    <category>marketing</category>
    <comments>This book is great for people who used 22 Immutable Laws of Marketing to build a brand and now want to strengthen that brand.</comments>
    </book>
    
    <book>
    <isbn>0679757651</isbn>
    <author>Tom Peters</author>
    <title>Circle of Innovation</title>
    <category>marketing</category>
    <comments>His most recent book is his best by far!</comments>
    </book>
    
    <book>
    <isbn>0884270610</isbn>
    <author>Eli Goldthrait</author>
    <title>The Goal</title>
    <category>management</category>
    <comments>Advocate of Theory of Constraints as applied to managment and optimization.</comments>
    </book>

    <book>
    <isbn>068485600X</isbn>
    <author>Jeff Cox, Howard Stevens</author>
    <title>Selling the Wheel</title>
    <category>management</category>
    <comments>Excellent Treatise/Novel on the entire Sales Cycle</comments>
    </book>

    <book>
    <isbn>0672316498</isbn>
    <author>Alan Cooper</author>
    <title>The Inmates Are Running The Asylum</title>
    <category>management</category>
    <comments>The father of Visual Basic and creator of the new art of Interaction Design - very valuable in designing websites. Basically the worlds most  cutting edge thinker in User Interface design aimed at simplifying software use.</comments>
    </book>
    
</books>
There are many worthy charities!!. But perhaps help starving children in Africa or South America AND help Charles too. a $5 tip buys him lunch at McDonalds, a $20 tip buys his kid Hitoshi a new computer game, a $39 tip buys his daughter Michiko a few nice outfits. See our donor list.