Article

Beginning ASP.NET Using VB.NET - Chapter 14: ASP.NET Server Controls

Page: 1 2 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 Next

2. Now add the following to the top of this page:

<%@ Import Namespace="System.Data" %>                      
<%@ Import Namespace="System.IO" %>                      
                     
<script language="VB" runat="server">                      
                     
 Sub Page_Load(Sender As Object, E As EventArgs)                      
                     
   If Not Page.IsPostBack Then                      
     EventData.DataSource = LoadMyCalendarData                      
     EventData.DataBind()                      
   End If                      
                     
 End Sub                      
                     
 Protected Function LoadMyCalendarData() As DataSet                      
   Dim sourceXML as String = Server.MapPath("MyCalendar.xml")                      
     If ( Not File.Exists ( sourceXML ) )                      
Then                      
       Return Nothing                      
     End if                      
   Dim cachedDataSet as DataSet = Session("MyCalendarData")                      
     If ( Not cachedDataSet Is Nothing )                      
Then                          
       Return cachedDataSet                      
     End if                      
   Dim dataSet As DataSet = New DataSet()                      
                     
   Try                      
     dataSet.ReadXml(sourceXML)                      
                         
     Session("MyCalendarData") = dataSet                      
                       
   Catch e As Exception                      
     ErrorMessage.Text = e.Message                      
     dataSet = Nothing                      
   End Try                      
                     
   Return dataSet                      
                     
 End Function                      
                     
 Sub DEDR_Edit(Sender As Object, E As DataGridCommandEventArgs)                      
                     
   EventData.EditItemIndex = CInt                      
(e.Item.ItemIndex)                      
   EventData.DataSource = LoadMyCalendarData                      
   EventData.DataBind()                      
                     
 End Sub                      
                     
 Sub DEDR_Update(Sender As Object, E As DataGridCommandEventArgs)                      
   Dim dataSet  As DataSet = LoadMyCalendarData                      
   Dim row      As Integer = CInt(e.Item.ItemIndex)                      
   Dim EditText As TextBox                      
                     
   EditText = E.Item.FindControl("txtShortDesc")                      
   dataSet.Tables(0).Rows(row).Item("ShortDesc") = EditText.Text                      
   EditText = E.Item.FindControl("txtDetailDesc")                      
   dataSet.Tables(0).Rows(row).Item("DetaiLDesc") = EditText.Text                      
   EditText = E.Item.FindControl("txtStartTime")                      
   dataSet.Tables(0).Rows(row).Item("StartTime") = EditText.Text                      
   EditText = E.Item.FindControl("txtEndTime")                      
   dataSet.Tables(0).Rows(row).Item("EndTime") = EditText.Text                      
                         
   dataSet.WriteXml(Server.MapPath("MyCalendar.xml"))                      
                         
   Session("MyCalendarData") = Nothing                      
                       
   EventData.EditItemIndex = -1                      
                     
   EventData.DataSource = LoadMyCalendarData                      
   EventData.DataBind()                      
                     
 End Sub                        
                     
 Sub DEDR_Cancel(Sender As Object, E As DataGridCommandEventArgs)                      
                     
   EventData.EditItemIndex = -1                      
   Session("MyCalendarData") = Nothing                      
   EventData.DataSource = LoadMyCalendarData                      
   EventData.DataBind()                      
                     
 End Sub                      
                     
 Sub DEDR_Delete(Sender As Object, E As                      
 DataGridCommandEventArgs)                      
   Dim dataSet As DataSet = LoadMyCalendarData                      
   Dim row     As Integer = CInt(e.Item.ItemIndex)                      
                         
   dataSet.Tables(0).Rows(row).Delete                      
   dataSet.WriteXml(Server.MapPath("MyCalendar.xml"))                      
   Session("MyCalendarData") = Nothing                      
   EventData.EditItemIndex = -1                      
   EventData.DataSource = LoadMyCalendarData                      
   EventData.DataBind()                      
                       
 End Sub                      
                     
 Sub DEDR_Add(Sender As Object, E As EventArgs)                      
   Dim dataSet As DataSet = LoadMyCalendarData                      
                     
   Dim newRow As DataRow                      
   newRow = dataSet.Tables(0).NewRow()                      
   newRow.Item("EventDate") = "15/07/2001"                      
   newRow.Item("ShortDesc") = ""                      
   newRow.Item("DetailDesc") = ""                      
   newRow.Item("StartTime") = ""                      
   newRow.Item("EndTime") = ""                      
   dataSet.Tables(0).Rows.Add(newRow)                      
                       
   dataSet.WriteXml(Server.MapPath("MyCalendar.xml"))                      
                     
   Session("MyCalendarData") = Nothing                      
                     
   EventData.DataSource = LoadMyCalendarData                      
   EventData.DataBind()                      
   EventData.EditItemIndex = EventData.Items.Count - 1                      
   EventData.DataSource = LoadMyCalendarData                      
   EventData.DataBind()                      
                     
 End Sub                      
</script>

14_50_1.jpg

There's nothing very special about this -- it's a standard looking grid, with options to add and edit data.

If you liked this article, share the love:
Print-Friendly Version Suggest an Article

Sponsored Links