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占用系统资源太大,还有没有别的方法?

解决方案 »

  1.   

    DataRowCollection rowCollection   = table.Rows;
            DataRow foundRow = table.Rows[selectrow];
            rowCollection.Remove(foundRow);//删除数据集记录
      

  2.   

    使用ViewState占用系统资源太大,还有没有别的方法?
    ==============================================ViewState占用的是客户端的资源,只要DataTable不太大,这样的解决方案还是可以接受的。
    总比放在服务端Session里好。