Private Sub btnok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnok.Click '定义表
Dim dtable As New DataTable("tbTmp")
'定义列
Dim dCol0 As New DataColumn("ID", System.Type.GetType("System.Int16"))
Dim dCol1 As New DataColumn("First_Name", System.Type.GetType("System.String"))
Dim dCol2 As New DataColumn("Last_Name", System.Type.GetType("System.String")) dtable.Columns.Add(dCol0) : dtable.Columns.Add(dCol1) : dtable.Columns.Add(dCol2)
dtable.AcceptChanges() '定义行
Dim dRow As DataRow
dRow = dtable.NewRow() '添加一行
dRow("ID") = 1
dRow("First_Name") = "Mike"
dRow("Last_Name") = "Jackson"
dtable.Rows.Add(dRow) dRow = dtable.NewRow
dRow("ID") = 2
dRow("First_Name") = "Tom"
dRow("Last_Name") = "Villiamn"
dtable.Rows.Add(dRow) dRow = dtable.NewRow
dRow("ID") = 3
dRow("First_Name") = "Mary"
dRow("Last_Name") = "Suli"
dtable.Rows.Add(dRow) dtable.AcceptChanges()
ViewState("dt") = dtable DataGrid1.DataSource = dtable.DefaultView
DataGrid1.DataBind() End SubPrivate Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand Dim dt As New DataTable("dt") dt = ViewState("dt")
ViewState.Clear() dt.Rows.RemoveAt(e.Item.ItemIndex) DataGrid1.DataSource = dt.DefaultView
DataGrid1.DataBind() End Sub
使用ViewState占用系统资源太大,还有没有别的方法?
Dim dtable As New DataTable("tbTmp")
'定义列
Dim dCol0 As New DataColumn("ID", System.Type.GetType("System.Int16"))
Dim dCol1 As New DataColumn("First_Name", System.Type.GetType("System.String"))
Dim dCol2 As New DataColumn("Last_Name", System.Type.GetType("System.String")) dtable.Columns.Add(dCol0) : dtable.Columns.Add(dCol1) : dtable.Columns.Add(dCol2)
dtable.AcceptChanges() '定义行
Dim dRow As DataRow
dRow = dtable.NewRow() '添加一行
dRow("ID") = 1
dRow("First_Name") = "Mike"
dRow("Last_Name") = "Jackson"
dtable.Rows.Add(dRow) dRow = dtable.NewRow
dRow("ID") = 2
dRow("First_Name") = "Tom"
dRow("Last_Name") = "Villiamn"
dtable.Rows.Add(dRow) dRow = dtable.NewRow
dRow("ID") = 3
dRow("First_Name") = "Mary"
dRow("Last_Name") = "Suli"
dtable.Rows.Add(dRow) dtable.AcceptChanges()
ViewState("dt") = dtable DataGrid1.DataSource = dtable.DefaultView
DataGrid1.DataBind() End SubPrivate Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand Dim dt As New DataTable("dt") dt = ViewState("dt")
ViewState.Clear() dt.Rows.RemoveAt(e.Item.ItemIndex) DataGrid1.DataSource = dt.DefaultView
DataGrid1.DataBind() End Sub
使用ViewState占用系统资源太大,还有没有别的方法?
DataRow foundRow = table.Rows[selectrow];
rowCollection.Remove(foundRow);//删除数据集记录
==============================================ViewState占用的是客户端的资源,只要DataTable不太大,这样的解决方案还是可以接受的。
总比放在服务端Session里好。