1.在转入另一页面的是否,把当然页面的DataGrid页数保存到Session里,或者通过URL传递过去,修改完成返回后,根据Session或者传过来的URL参数,再设置DataGrid的当前页
2.在绑定之前判断一下DataTable中的记录数是否与当前页相匹配
2.在绑定之前判断一下DataTable中的记录数是否与当前页相匹配
解决方案 »
- asp.net后台调用ajax错误
- 存储过程返回数据行及总数
- session时间设置问题
- 类文件中引用Server.MapPath的问题
- 急!!请教:判断字符串是否可转换为int、double、datetime、bool类型变量的方法??
- 程序员的生命周期
- 多图片生成缩略图组合---分不够可以再加
- 查询出来的数据防止别人盗用
- 为什么aspnet_wp.exe不能启动?急,在线,高分。
- URL参数问题。部分正常,部分取不出值
- 求思路!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(在线等待)
- 已经生成了一个DataSet,我又声明了一个DataTable,如何让这个DataTable 指向这个DataSet 的一个表?
Dim strprov As String = "provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("database.mdb")
Dim edits As String
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Not IsPostBack Then
adocmd = New OleDbDataAdapter("select * from class", strprov)
Dim ds As DataSet = New DataSet()
adocmd.Fill(ds, "class")
mytable = ds.Tables.Item(0)
Dim value As ArrayList = New ArrayList()
Dim i As Integer
For i = 0 To mytable.Rows.Count - 1
myrow = mytable.Rows.Item(i)
value.Add(myrow.Item(0))
Next
DropDownList1.DataSource = value
DropDownList1.DataBind()
Dim newadocmd As OleDbDataAdapter
newadocmd = New OleDbDataAdapter("select class as 产品,id as 编号,name as 名称,style as 规格,sour as 厂家,monery as 价格 from datasour", strprov)
Dim newds As DataSet = New DataSet()
newadocmd.Fill(newds, "datasour")
DataGrid1.DataSource = newds.Tables.Item(0)
DataGrid1.DataBind()
Else
End If End Sub Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
Dim newadocmd As OleDbDataAdapter
newadocmd = New OleDbDataAdapter("select class as 产品,id as 编号,name as 名称,style as 规格,sour as 厂家,monery as 价格 from datasour", strprov)
Dim newds As DataSet = New DataSet()
newadocmd.Fill(newds, "datasour")
DataGrid1.DataSource = newds.Tables.Item(0)
DataGrid1.CurrentPageIndex = e.NewPageIndex
DataGrid1.DataBind()
End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dss As DataSet = New DataSet()
System.Diagnostics.Debug.Write(DropDownList1.SelectedItem.Value)
Dim strconn As String = "select class as 产品,id as 编号,name as 名称,style as 规格,sour as 厂家,monery as 价格 from datasour where class='" & Trim(DropDownList1.SelectedItem.Text) & "'"
adocmd = New OleDbDataAdapter(strconn, strprov)
adocmd.Fill(dss, "datasour")
DataGrid1.DataSource = dss.Tables.Item(0)
DataGrid1.DataBind()
End Sub Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand
Dim i As Integer = (DataGrid1.CurrentPageIndex * 15) + e.Item.ItemIndex
adocmd = New OleDbDataAdapter("select * from datasour", strprov)
Dim d As DataSet = New DataSet()
adocmd.Fill(d, "datasour")
mytable = d.Tables.Item(0)
mytable.Rows.Item(i).Delete()
cmd = New OleDbCommandBuilder(adocmd)
adocmd.Update(d, "datasour")
Response.Redirect("temp.htm")
' Dim newadocmd As OleDbDataAdapter
' newadocmd = New OleDbDataAdapter("select class as 产品,id as 编号,name as 名称,style as 规格,sour as 厂家,monery as 价格 from datasour", strprov)
' Dim newds As DataSet = New DataSet()
' newadocmd.Fill(newds, "datasour")
' DataGrid1.DataSource = newds.Tables.Item(0)
' DataGrid1.DataBind()
End Sub Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
DataGrid1.EditItemIndex = e.Item.ItemIndex
'Dim text As TextBox
'text = CType(e.Item.Cells(3).Controls(0), TextBox)
'edit = text.Text
Dim newadocmd As OleDbDataAdapter
newadocmd = New OleDbDataAdapter("select class as 产品,id as 编号,name as 名称,style as 规格,sour as 厂家,monery as 价格 from datasour", strprov)
Dim newds As DataSet = New DataSet()
newadocmd.Fill(newds, "datasour")
DataGrid1.DataSource = newds.Tables.Item(0)
DataGrid1.DataBind()
End Sub Private Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand
DataGrid1.EditItemIndex = -1
Dim newadocmd As OleDbDataAdapter
newadocmd = New OleDbDataAdapter("select class as 产品,id as 编号,name as 名称,style as 规格,sour as 厂家,monery as 价格 from datasour", strprov)
Dim newds As DataSet = New DataSet()
newadocmd.Fill(newds, "datasour")
DataGrid1.DataSource = newds.Tables.Item(0)
DataGrid1.DataBind()
DataGrid1.DataBind()
End Sub Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
Dim i As Int16
i = (DataGrid1.CurrentPageIndex * 15) + e.Item.ItemIndex
adocmd = New OleDbDataAdapter("select * from datasour", strprov)
Dim dd As DataSet = New DataSet()
adocmd.Fill(dd, "datasour")
mytable = dd.Tables.Item(0)
myrow = mytable.Rows.Item(i)
edits = myrow.Item(1)
System.Diagnostics.Debug.Write(myrow.Item(1))
Dim tb As TextBox
tb = CType(e.Item.Cells(7).Controls(0), TextBox) 'id
Dim tb1 As TextBox
tb1 = CType(e.Item.Cells(4).Controls(0), TextBox) 'name
Dim tb2 As TextBox
tb2 = CType(e.Item.Cells(5).Controls(0), TextBox) 'stylw
Dim tb3 As TextBox
tb3 = CType(e.Item.Cells(6).Controls(0), TextBox)
' myrow.Item(5) = tb.Text
' mytable.GetChanges()
' adocmd.Update(dd, "datasour")
'===========================================================
Dim strsele As String = "update datasour set monery='" & tb.Text & "',name='" & tb1.Text & "',style='" & tb2.Text & "',sour='" & tb3.Text & "' where id='" & edits & "'"
System.Diagnostics.Debug.Write(edits.ToString)
Dim sqlconn As New OleDbConnection(strprov)
Dim cmdtable As OleDbCommand = New OleDbCommand(strsele, sqlconn)
cmdtable.CommandType = CommandType.Text
If sqlconn.State <> ConnectionState.Open Then
sqlconn.Open()
End If
cmdtable.ExecuteNonQuery()
If sqlconn.State <> ConnectionState.Closed Then
sqlconn.Close()
End If
DataGrid1.EditItemIndex = -1
Dim newadocmd As OleDbDataAdapter
newadocmd = New OleDbDataAdapter("select class as 产品,id as 编号,name as 名称,style as 规格,sour as 厂家,monery as 价格 from datasour", strprov)
Dim newds As DataSet = New DataSet()
newadocmd.Fill(newds, "datasour")
DataGrid1.DataSource = newds.Tables.Item(0)
DataGrid1.DataBind()
End Sub Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
If e.Item.ItemType = ListItemType.EditItem Then
Dim box As TextBox
Dim x As Integer
For x = 2 To 7
box = CType(e.Item.Cells(x).Controls(0), TextBox)
If x = 2 Or x = 5 Or x = 6 Then
box.Width = Unit.Pixel(55)
ElseIf x = 3 Then
box.Width = Unit.Pixel(65)
ElseIf x = 4 Then
box.Width = Unit.Pixel(190)
Else
box.Width = Unit.Pixel(50) End If
Next
End If
End Sub
End Class
2.删除前先判断DataTable.Rows.Count % DataGrid.PageSize ==0并且dataGrid.CurrentPageIndex>0
使datagrid.CurrentPageIndex =datagrid.PageCount -2;