/
Default.aspx.vb
107 lines (84 loc) · 3.76 KB
/
Default.aspx.vb
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
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
Imports System
Imports System.Collections.Generic
Imports System.Collections.Specialized
Imports System.ComponentModel
Imports System.Linq
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace T114462
Public Partial Class [Default]
Inherits Page
Protected ReadOnly Property GridData As List(Of GridDataItem)
Get
Dim key = "34FAA431-CF79-4869-9488-93F6AAE81263"
If Not IsPostBack OrElse Session(key) Is Nothing Then Session(key) = Enumerable.Range(0, 100).[Select](Function(i) New GridDataItem With {.ID = i, .C1 = i Mod 2, .C2 = i * 0.5 Mod 3, .C3 = "C3 " & i, .C4 = i Mod 2 = 0, .C5 = New DateTime(2013 + i, 12, 16)}).ToList()
Return CType(Session(key), List(Of GridDataItem))
End Get
End Property
Protected Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs)
Grid.DataSource = GridData
Grid.DataBind()
End Sub
Protected Sub Grid_BatchUpdate(ByVal sender As Object, ByVal e As DevExpress.Web.Data.ASPxDataBatchUpdateEventArgs)
For Each args In e.InsertValues
InsertNewItem(args.NewValues)
Next
For Each args In e.UpdateValues
UpdateItem(args.Keys, args.NewValues)
Next
For Each args In e.DeleteValues
DeleteItem(args.Keys, args.Values)
Next
e.Handled = True
End Sub
Protected Sub Grid_RowInserting(ByVal sender As Object, ByVal e As DevExpress.Web.Data.ASPxDataInsertingEventArgs)
InsertNewItem(e.NewValues)
CancelEditing(e)
End Sub
Protected Sub Grid_RowUpdating(ByVal sender As Object, ByVal e As DevExpress.Web.Data.ASPxDataUpdatingEventArgs)
UpdateItem(e.Keys, e.NewValues)
CancelEditing(e)
End Sub
Protected Sub Grid_RowDeleting(ByVal sender As Object, ByVal e As DevExpress.Web.Data.ASPxDataDeletingEventArgs)
DeleteItem(e.Keys, e.Values)
CancelEditing(e)
End Sub
Protected Function InsertNewItem(ByVal newValues As OrderedDictionary) As GridDataItem
Dim item = New GridDataItem() With {.ID = GridData.Count}
LoadNewValues(item, newValues)
GridData.Add(item)
Return item
End Function
Protected Function UpdateItem(ByVal keys As OrderedDictionary, ByVal newValues As OrderedDictionary) As GridDataItem
Dim id = Convert.ToInt32(keys("ID"))
Dim item = GridData.First(Function(i) i.ID = id)
LoadNewValues(item, newValues)
Return item
End Function
Protected Function DeleteItem(ByVal keys As OrderedDictionary, ByVal values As OrderedDictionary) As GridDataItem
Dim id = Convert.ToInt32(keys("ID"))
Dim item = GridData.First(Function(i) i.ID = id)
GridData.Remove(item)
Return item
End Function
Protected Sub LoadNewValues(ByVal item As GridDataItem, ByVal values As OrderedDictionary)
item.C1 = Convert.ToInt32(values("C1"))
item.C2 = Convert.ToDouble(values("C2"))
item.C3 = Convert.ToString(values("C3"))
item.C4 = Convert.ToBoolean(values("C4"))
item.C5 = Convert.ToDateTime(values("C5"))
End Sub
Protected Sub CancelEditing(ByVal e As CancelEventArgs)
e.Cancel = True
Grid.CancelEdit()
End Sub
End Class
Public Class GridDataItem
Public Property ID As Integer
Public Property C1 As Integer
Public Property C2 As Double
Public Property C3 As String
Public Property C4 As Boolean
Public Property C5 As Date
End Class
End Namespace