注册 登录
编程论坛 ASP.NET技术论坛

急急急!!!!!!!!添加页码模式和数字模式后那里的编辑(更新,取消)不能打开了

twtdd 发布于 2008-06-15 01:13, 771 次点击
Function CreateDataSet(ByVal strSQL As String, ByVal FileName As String, ByVal TableName As String) As DataSet
        Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(FileName)
        Dim objCmd As New OleDbDataAdapter(strSQL, ConnString)
        Dim DS As New DataSet
        objCmd.Fill(DS, TableName)
        CreateDataSet = DS
    End Function
    Sub BindList()

        DataGrid1.DataSource = CreateDataSet("select * from book", "Mydb.mdb", "book")

        DataGrid1.DataBind()
    End Sub
    Public Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not IsPostBack Then BindList()
        If RadioButton1.Checked Then
            DataGrid1.PagerStyle.Mode = PagerMode.NextPrev
            DataGrid1.PagerStyle.PrevPageText = "上一页"
            DataGrid1.PagerStyle.NextPageText = "下一页"
        Else
            DataGrid1.PagerStyle.Mode = PagerMode.NumericPages
        End If
        BindList()

    End Sub

    Sub DataGrid_EditCommand(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
        DataGrid1.EditItemIndex = e.Item.ItemIndex
        BindList()
    End Sub

    Sub DataGrid_CancelCommand(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
        DataGrid1.EditItemIndex = -1
        BindList()
    End Sub


    Private Sub DataGrid1_UpdateCommand(ByVal source As System.Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs)

        Dim aa As String = CType(e.Item.Cells(1).Controls(0), TextBox).Text
        Dim bb As String = CType(e.Item.Cells(2).Controls(0), TextBox).Text
        Dim cc As String = CType(e.Item.Cells(3).Controls(0), TextBox).Text
        Dim dd As String = CType(e.Item.Cells(4).Controls(0), TextBox).Text

        Dim strSQL As String
        strSQL = "Update book Set 代号= ' " & aa & " ', 刊名=' " & bb & " ', 类别=' " & cc & " ',刊期=' " & dd & " ' Where " & DataGrid1.DataKeyField & "=" & DataGrid1.DataKeys(e.Item.ItemIndex)

        Dim objConn As New OleDbConnection
        objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Mydb.mdb")
        objConn.Open()
        Dim objCmd As New OleDbCommand(strSQL, objConn)
        objCmd.ExecuteNonQuery()
        DataGrid1.EditItemIndex = -1
        BindList()


    End Sub



    Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
        DataGrid1.CurrentPageIndex = e.NewPageIndex
        BindList()

    End Sub
End Class
6 回复
#2
twtdd2008-06-15 01:13
请问各位大虾那里错了..麻烦看下..小弟感激不尽

[[it] 本帖最后由 twtdd 于 2008-6-15 01:17 编辑 [/it]]
#3
冰彩虹2008-06-15 12:38
在你的Page_Load里去掉最后一行代码:BindList()
#4
twtdd2008-06-15 15:33
谢谢了
#5
twtdd2008-06-15 16:01
但是去掉后上下模式和数字模式不是很好用了.总要点两次才会来回转换
#6
冰彩虹2008-06-15 18:49
设置模式你可以放在RadioButton的SelectIndexChanged事件里,而不应该放在PageLoad里的
#7
twtdd2008-06-16 09:23
谢谢版主
1