sqlconn.Close() sqlconn.Open() Catch ex As Exception
End Try
sqlcom = New SqlCommand(\, sqlconn) sqladp = New SqlDataAdapter(sqlcom) sqladp.Fill(dtset, \)
GridView1.DataSource = dtset.Tables(\).DefaultView GridView1.DataBind() sqlcom.Dispose()
End Sub
(2)page Load 时
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim sqlcom As New SqlCommand Dim sqldr As SqlDataReader
If Page.IsPostBack = False Then Session(\) = \ End if
If Session(\) = \ Then binddata() End If
End Sub
3、 显示字段(列头设置) 属性:auto…自动产生
属性:columns
26
点
进入字段列设置
4、 加入编辑、删除、明细按钮
27
5、 实现修改、更新功能
Gridview事件:Rowediting 行编辑时
Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing Session(\) = \ binddata()
GridView1.EditIndex = e.NewEditIndex GridView1.DataBind()
End Sub
Gridview事件:Rowupdating 行准备更新时
Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating Dim sql_upd As SqlCommand Dim id, tpic, stu As String
Dim txtpic, txstu As New TextBox 注:必须创建textbox对象,存储当前行cells单元的控件,然后才能取得当时的值
Session(\) = \
id = GridView1.DataKeys(e.RowIndex).Values(0).ToString txtpic = GridView1.Rows(e.RowIndex).Cells(1).Controls(0) tpic = txtpic.Text
txstu = GridView1.Rows(e.RowIndex).Cells(4).Controls(0) stu = txstu.Text Try
sqlconn.Open() Catch ex As Exception
End Try
sql_upd = New SqlCommand(\ + tpic + \ + stu + \ + id + \, sqlconn) Try
sql_upd.ExecuteNonQuery() Catch ex As Exception
Response.Write(sql_upd.CommandText) End Try
'Response.Write(sql_upd.CommandText) sqlconn.BeginTransaction.Commit() sqlconn.Close()
GridView1.EditIndex = -1 End Sub
Gridview事件:Rowupdated 行更新后
Protected Sub GridView1_RowUpdated(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewUpdatedEventArgs) Handles GridView1.RowUpdated
28
binddata()
GridView1.EditIndex = -1 Session(\) = \
End Sub
6、 实现删除功能
Gridview事件:RowDeleting 行删除时
Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting Dim pubid As String
Dim sqlcom As New SqlCommand
'GridView1.SelectedIndex = e.RowIndex
pubid = GridView1.DataKeys(0).Values(0).ToString 注:获得当前行主键值 Try
sqlconn.Open()
sqlcom = New SqlCommand(\ + pubid, sqlconn) sqlcom.ExecuteNonQuery()
sqlconn.BeginTransaction.Commit() sqlconn.Close() Catch ex As Exception
End Try
End Sub
删除后
Protected Sub GridView1_RowDeleted(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewDeletedEventArgs) Handles GridView1.RowDeleted binddata()
Session(\) = \End Sub
7、 实现显示明细功能(与detailsview结合使用)
在Gridview的columns中加入HyperLinker超链接,属性设置
29
DataNavigateUrlFormatstring 设置为要链接的Url,?后为带参数传递,多个参数以&分隔,如id={0}&op=edit。当链接页启动时通过Request.querystring(“id”)和Request.querystring(“op”)来读取参数,创建一个command对象查询符合条件的记录,并写出各字段值(可以写入到detailsview中)
Detailsview与Gridview基本相同,Detailsview也可分页显示,不过每页为一条记录,字段竖向显示。
Detailsview显示结果效果比较好,但是编辑、删除非常麻烦,可控性较差。建议直接使用表单来显示/修改。
30