给初学的朋友们,datagrid用xml作为数据源,并且有更新,删除和

来源:岁月联盟 编辑:zhu 时间:2003-07-12
<%@ 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("books.xml"), FileMode.Open)
        ds.ReadXml(FS)
        MyDataGrid.DataSource = new DataView(ds.Tables(0))
        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:
Run This Code

<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>