Na heel veel uurtjes google en diverse pogingen post ik het probleem hier.
Ik heb een dataset die ik na elke postback weer beschikbaar wil hebben. Hiervoor sla ik de dataset op in een Session.
Echter lukt het me niet om de gegevens weer terug te halen uit de Session om ze vervolgens weer te laten zien.
Heeft iemand meer ervaring met het opslaan van een dataset in een sessie?
Ik heb een dataset die ik na elke postback weer beschikbaar wil hebben. Hiervoor sla ik de dataset op in een Session.
Echter lukt het me niet om de gegevens weer terug te halen uit de Session om ze vervolgens weer te laten zien.
Heeft iemand meer ervaring met het opslaan van een dataset in een sessie?
code:
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
108
109
110
111
112
| <%@ Page Language="VB" Debug="True" Explicit="True" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">
Dim ds As New DataSet
Dim dTable As New DataTable("Users")
Sub Page_Load
If Not Page.IsPostBack Then
BuildColumns
Else
BuildColumns
ds = CType(Session("SaveDataSet"), DataSet)
End If
End Sub
Sub BuildColumns
dTable.Columns.Add("UserName", System.Type.GetType ("System.String"))
dTable.Columns.Add("LastName", System.Type.GetType ("System.String"))
dTable.Columns.Add("UserId", System.Type.GetType ("System.Int32"))
dTable.Columns("UserId").AutoIncrement = True
ds.Tables.Add(dTable)
Dim Keys() As DataColumn = {ds.Tables("Users").Columns("UserId")}
ds.Tables("Users").PrimaryKey = Keys
AddUserGrid.DataSource = ds
AddUserGrid.DataBind()
End Sub
Sub doInsert(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
If e.CommandName = "Insert" Then
Dim Username As String
Dim txtUserName As TextBox
'... declarations for remaining data fields
'Read in the values of the TextBoxes
txtUserName = e.Item.FindControl("add_Username")
UserName = txtUserName.Text
'... get values for remaining data fields
Dim dr As DataRow = dTable.NewRow()
dr(0) = "Jan"
dr(1) = "Jansen"
dTable.Rows.Add(dr)
'Save the dataset to session
Session("SaveDataSet") = ds
'Rebind the DataGrid
AddUserGrid.EditItemIndex = -1
AddUserGrid.DataSource = ds
AddUserGrid.DataBind()
End If
End Sub
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:DataGrid id="AddUserGrid" runat="server" ShowFooter="True" AutoGenerateColumns="False" OnItemCommand="DoInsert">
<ItemStyle backcolor="AliceBlue"></ItemStyle>
<HeaderStyle backcolor="LightGray"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="Username">
<ItemTemplate>
<%# Container.DataItem("UserName") %>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="add_username" Columns="10" Runat="Server" />
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox ID="add_username" Columns="10" Text='<%# Container.DataItem("UserName") %>' Runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Firstname">
<ItemTemplate>
bla
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="add_firstname" Columns="10" Runat="Server" />
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox ID="add_firstname" Columns="10" Text="bla" Runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="PushButton" UpdateText="Update" CancelText="Cancel" EditText="Edit" HeaderText="Edit" />
<asp:TemplateColumn HeaderText="Delete">
<FooterTemplate>
<asp:Button CommandName="Insert" Text="Add" ID="btnAdd" Runat="server" />
</FooterTemplate>
<ItemTemplate>
<asp:Button CommandName="Delete" Text="Delete" ID="btnDel" Runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html> |