最近项目的需要,正好用到了detaisView控件,所以写了写
gridview:这里我用的是数据源
<%
...
@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default"
%>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:GridView ID ="GridView1" runat ="server" AutoGenerateColumns ="False" DataSourceID ="SqlDataSource1" >
< Columns >
< asp:BoundField DataField ="name" HeaderText ="name" SortExpression ="name" />
< asp:BoundField DataField ="id" HeaderText ="id" SortExpression ="id" />
< asp:TemplateField >
< ItemTemplate >
< a href ='Default2.aspx?id=<%#Eval("id") % > '> <% ... #Eval("id") %> </ a >
</ ItemTemplate >
</ asp:TemplateField >
</ Columns >
</ asp:GridView >
</ div >
< asp:SqlDataSource ID ="SqlDataSource1" runat ="server" ConnectionString ="Data Source=localhost;Initial Catalog=test;User ID=sa;pwd=sql;"
SelectCommand ="SELECT [name], [id] FROM [userInfo]" ></ asp:SqlDataSource >
</ form >
</ body >
</ html >
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:GridView ID ="GridView1" runat ="server" AutoGenerateColumns ="False" DataSourceID ="SqlDataSource1" >
< Columns >
< asp:BoundField DataField ="name" HeaderText ="name" SortExpression ="name" />
< asp:BoundField DataField ="id" HeaderText ="id" SortExpression ="id" />
< asp:TemplateField >
< ItemTemplate >
< a href ='Default2.aspx?id=<%#Eval("id") % > '> <% ... #Eval("id") %> </ a >
</ ItemTemplate >
</ asp:TemplateField >
</ Columns >
</ asp:GridView >
</ div >
< asp:SqlDataSource ID ="SqlDataSource1" runat ="server" ConnectionString ="Data Source=localhost;Initial Catalog=test;User ID=sa;pwd=sql;"
SelectCommand ="SELECT [name], [id] FROM [userInfo]" ></ asp:SqlDataSource >
</ form >
</ body >
</ html >
detailsView:
前台:
<%
...
@ Page Language="VB" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="Default2"
%>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:DetailsView ID ="DetailsView1" runat ="server" Height ="50px" Width ="125px" AutoGenerateRows ="False" >
< Fields >
< asp:TemplateField HeaderText ="id" >
< EditItemTemplate >
< asp:TextBox ID ="TextBox1" runat ="server" Text ='<%# Bind("id") % > '> </ asp:TextBox >
</ EditItemTemplate >
< InsertItemTemplate >
< asp:TextBox ID ="TextBox1" runat ="server" Text ='<%# Bind("id") % > '> </ asp:TextBox >
</ InsertItemTemplate >
< ItemTemplate >
< asp:Label ID ="Label1" runat ="server" Text ='<%# Bind("id") % > '> </ asp:Label >
</ ItemTemplate >
</ asp:TemplateField >
< asp:TemplateField HeaderText ="name" >
< EditItemTemplate >
< asp:TextBox ID ="TextBox2" runat ="server" Text ='<%# Bind("name") % > '> </ asp:TextBox >
</ EditItemTemplate >
< InsertItemTemplate >
< asp:TextBox ID ="TextBox2" runat ="server" Text ='<%# Bind("name") % > '> </ asp:TextBox >
</ InsertItemTemplate >
< ItemTemplate >
< asp:Label ID ="Label2" runat ="server" Text ='<%# Bind("name") % > '> </ asp:Label >
</ ItemTemplate >
</ asp:TemplateField >
< asp:TemplateField ShowHeader ="False" >
< EditItemTemplate >
< asp:Button ID ="Button1" runat ="server" CausesValidation ="True" CommandName ="Update"
Text ="Update" /> < asp:Button ID ="Button2" runat ="server" CausesValidation ="False"
CommandName ="Cancel" Text ="Cancel" />
</ EditItemTemplate >
< ItemTemplate >
< asp:Button ID ="Button1" runat ="server" CausesValidation ="False" CommandName ="Edit"
Text ="Edit" />
</ ItemTemplate >
</ asp:TemplateField >
</ Fields >
</ asp:DetailsView >
</ div >
</ form >
</ body >
</ html >
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:DetailsView ID ="DetailsView1" runat ="server" Height ="50px" Width ="125px" AutoGenerateRows ="False" >
< Fields >
< asp:TemplateField HeaderText ="id" >
< EditItemTemplate >
< asp:TextBox ID ="TextBox1" runat ="server" Text ='<%# Bind("id") % > '> </ asp:TextBox >
</ EditItemTemplate >
< InsertItemTemplate >
< asp:TextBox ID ="TextBox1" runat ="server" Text ='<%# Bind("id") % > '> </ asp:TextBox >
</ InsertItemTemplate >
< ItemTemplate >
< asp:Label ID ="Label1" runat ="server" Text ='<%# Bind("id") % > '> </ asp:Label >
</ ItemTemplate >
</ asp:TemplateField >
< asp:TemplateField HeaderText ="name" >
< EditItemTemplate >
< asp:TextBox ID ="TextBox2" runat ="server" Text ='<%# Bind("name") % > '> </ asp:TextBox >
</ EditItemTemplate >
< InsertItemTemplate >
< asp:TextBox ID ="TextBox2" runat ="server" Text ='<%# Bind("name") % > '> </ asp:TextBox >
</ InsertItemTemplate >
< ItemTemplate >
< asp:Label ID ="Label2" runat ="server" Text ='<%# Bind("name") % > '> </ asp:Label >
</ ItemTemplate >
</ asp:TemplateField >
< asp:TemplateField ShowHeader ="False" >
< EditItemTemplate >
< asp:Button ID ="Button1" runat ="server" CausesValidation ="True" CommandName ="Update"
Text ="Update" /> < asp:Button ID ="Button2" runat ="server" CausesValidation ="False"
CommandName ="Cancel" Text ="Cancel" />
</ EditItemTemplate >
< ItemTemplate >
< asp:Button ID ="Button1" runat ="server" CausesValidation ="False" CommandName ="Edit"
Text ="Edit" />
</ ItemTemplate >
</ asp:TemplateField >
</ Fields >
</ asp:DetailsView >
</ div >
</ form >
</ body >
</ html >
后台:
Imports System
Imports System.Data.SqlClient
Imports System.Data
Partial Class Default2
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim strID As String = Request.QueryString( " id " )
ViewState( " strID " ) = strID
DetailsView1.DataSource = bindData(strID)
DetailsView1.DataBind()
End If
End Sub
Public Function bindData(ByVal ID As String) As DataSet
Dim strCon As String = " server=.;database=test;uid=sa;pwd=sql "
Dim sql As String = " select * from userinfo where id=' " + ID + " ' "
Using con As New SqlConnection(strCon)
Using cmd As New SqlCommand(sql, con)
con.Open()
Dim da As New SqlDataAdapter(cmd)
Dim dataset As New DataSet()
da.Fill(dataset)
Return dataset
End Using
End Using
End Function
Protected Sub DetailsView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewPageEventArgs) Handles DetailsView1.PageIndexChanging
End Sub
Protected Sub DetailsView1_ItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewCommandEventArgs) Handles DetailsView1.ItemCommand
If e.CommandName.Equals( " Edit " ) Then
' DetailsView1.DefaultMode = DetailsViewMode.Edit
DetailsView1.ChangeMode(DetailsViewMode.Edit)
DetailsView1.DataSource = bindData(ViewState( " strID " ).ToString())
DetailsView1.DataBind()
End If
If e.CommandName.Equals( " Cancel " ) Then
DetailsView1.ChangeMode(DetailsViewMode.ReadOnly)
DetailsView1.DataSource = bindData(ViewState( " strID " ).ToString())
DetailsView1.DataBind()
End If
End Sub
Protected Sub DetailsView1_ItemUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewUpdateEventArgs) Handles DetailsView1.ItemUpdating
Dim strid As String = ViewState( " strID " ).ToString()
Dim sql As String = " update userinfo set name =' " + CType(DetailsView1.FindControl( " TextBox2 " ), TextBox).Text.Trim() + " ' where id=' " + strid + " ' "
Dim strCon As String = " server=.;database=test;uid=sa;pwd=sql "
Using con As New SqlConnection(strCon)
Using cmd As New SqlCommand(sql, con)
con.Open()
cmd.ExecuteNonQuery()
End Using
End Using
DetailsView1.ChangeMode(DetailsViewMode.ReadOnly)
DetailsView1.DataSource = bindData(ViewState( " strID " ).ToString())
DetailsView1.DataBind()
End Sub
Protected Sub DetailsView1_ModeChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewModeEventArgs) Handles DetailsView1.ModeChanging
End Sub
Protected Sub DetailsView1_ItemCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles DetailsView1.ItemCreated
End Sub
End Class
Imports System.Data.SqlClient
Imports System.Data
Partial Class Default2
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim strID As String = Request.QueryString( " id " )
ViewState( " strID " ) = strID
DetailsView1.DataSource = bindData(strID)
DetailsView1.DataBind()
End If
End Sub
Public Function bindData(ByVal ID As String) As DataSet
Dim strCon As String = " server=.;database=test;uid=sa;pwd=sql "
Dim sql As String = " select * from userinfo where id=' " + ID + " ' "
Using con As New SqlConnection(strCon)
Using cmd As New SqlCommand(sql, con)
con.Open()
Dim da As New SqlDataAdapter(cmd)
Dim dataset As New DataSet()
da.Fill(dataset)
Return dataset
End Using
End Using
End Function
Protected Sub DetailsView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewPageEventArgs) Handles DetailsView1.PageIndexChanging
End Sub
Protected Sub DetailsView1_ItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewCommandEventArgs) Handles DetailsView1.ItemCommand
If e.CommandName.Equals( " Edit " ) Then
' DetailsView1.DefaultMode = DetailsViewMode.Edit
DetailsView1.ChangeMode(DetailsViewMode.Edit)
DetailsView1.DataSource = bindData(ViewState( " strID " ).ToString())
DetailsView1.DataBind()
End If
If e.CommandName.Equals( " Cancel " ) Then
DetailsView1.ChangeMode(DetailsViewMode.ReadOnly)
DetailsView1.DataSource = bindData(ViewState( " strID " ).ToString())
DetailsView1.DataBind()
End If
End Sub
Protected Sub DetailsView1_ItemUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewUpdateEventArgs) Handles DetailsView1.ItemUpdating
Dim strid As String = ViewState( " strID " ).ToString()
Dim sql As String = " update userinfo set name =' " + CType(DetailsView1.FindControl( " TextBox2 " ), TextBox).Text.Trim() + " ' where id=' " + strid + " ' "
Dim strCon As String = " server=.;database=test;uid=sa;pwd=sql "
Using con As New SqlConnection(strCon)
Using cmd As New SqlCommand(sql, con)
con.Open()
cmd.ExecuteNonQuery()
End Using
End Using
DetailsView1.ChangeMode(DetailsViewMode.ReadOnly)
DetailsView1.DataSource = bindData(ViewState( " strID " ).ToString())
DetailsView1.DataBind()
End Sub
Protected Sub DetailsView1_ModeChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewModeEventArgs) Handles DetailsView1.ModeChanging
End Sub
Protected Sub DetailsView1_ItemCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles DetailsView1.ItemCreated
End Sub
End Class