65.9K
CodeProject 正在变化。 阅读更多。
Home

在Asp.net中运行时创建DataGrid BoundColumn ButtonColumn HyperLinkColumn

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.41/5 (7投票s)

2005年12月15日

2分钟阅读

viewsIcon

78579

downloadIcon

640

本文演示了如何在Asp.net中运行时创建DataGrid BoundColumn ButtonColumn HyperLinkColumn。

引言

此代码演示了如何在Asp.net中运行时为DataGrid创建BoundColumn、HyperLinkColumn和ButtonColumn。

 

此代码还演示了如何使用两个网格控件创建主从关系。

步骤

1. 在VB.NET中打开一个Web项目

2. 在Web表单中放置两个DataGrid控件

       DataGrid1   -> 将ID更改为 -> gr           (这是主网格)

       DataGrid2   -> 将ID更改为 -> Detail      (这是详细网格)

3. 打开代码窗口以编写代码

注意

数据库信息

1.Ms Sql 2000

2.数据库名称:Northwind

3. 使用的表:Employees(用于主网格和详细网格)

编码

声明以下内容以进行数据库访问

Dim Conn As New SqlClient.SqlConnection()

Dim Cmd As New SqlClient.SqlCommand()

Dim Adap As New SqlClient.SqlDataAdapter()

Dim Tab As New DataTable()

声明以下DataGrid列

Dim Bound_Column As New BoundColumn()

Dim Hyper_Column As New HyperLinkColumn()

Dim Button_Column As New ButtonColumn()

现在我们可以初始化BoundColumn、HyperLinkColumn和ButtonColumn属性

在此之前,应该创建OnItemCommand事件并将其分配给DataGrid1(gr datagrid)的Disp()方法,然后我们才能对特定列(Button Coulmn)执行Button命令

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

AddHandler gr.ItemCommand, AddressOf disp ' it will links the gr Grid OnItemCommand Event to Disp method that was created in below of this code

初始化DataGrid gr

将AutoGenerate Column设置为False,以便在运行时添加手动列

gr.AutoGenerateColumns = False

gr.BorderWidth = System.Web.UI.WebControls.Unit.Parse(2)

gr.BorderColor = Color.Black
分配BoundColumn属性
Bound_Column = New BoundColumn()

Bound_Column.DataField = "employeeid"    ' Data Field Name(that is present in Query)

Bound_Column.DataFormatString = ""     ' You May Specify the format of the Column
Bound_Column.HeaderText = "Employee ID"

Bound_Column.ItemStyle.BackColor = Color.White

Bound_Column.ItemStyle.ForeColor = Color.Blue

Bound_Column.ItemStyle.BorderColor = Color.Black

Bound_Column.ItemStyle.BorderWidth = System.Web.UI.WebControls.Unit.Parse(2)

Bound_Column.ItemStyle.Width = System.Web.UI.WebControls.Unit.Parse(100)

Bound_Column.HeaderStyle.ForeColor = Color.Green

Bound_Column.HeaderStyle.BackColor = Color.Blue

Bound_Column.HeaderStyle.BorderColor = Color.White

Bound_Column.HeaderStyle.BorderWidth = System.Web.UI.WebControls.Unit.Parse(2)

Bound_Column.ItemStyle.HorizontalAlign = HorizontalAlign.Center

Bound_Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
gr.Columns.Add(Bound_Column)  ' Adding the Column to Datagrid
 

 
分配HyperLink Column属性
 
Hyper_Column = New HyperLinkColumn()
Hyper_Column.DataTextField = "lastname"
Hyper_Column.DataTextFormatString = ""
Hyper_Column.HeaderText = "Last Name"
Hyper_Column.ItemStyle.BackColor = Color.White
Hyper_Column.ItemStyle.ForeColor = Color.Green
Hyper_Column.ItemStyle.BorderColor = Color.Black
Hyper_Column.ItemStyle.BorderWidth = System.Web.UI.WebControls.Unit.Parse(2)
Hyper_Column.ItemStyle.Width = System.Web.UI.WebControls.Unit.Parse(100)
Hyper_Column.HeaderStyle.ForeColor = Color.Blue
Hyper_Column.HeaderStyle.BackColor = Color.Yellow
Hyper_Column.HeaderStyle.BorderColor = Color.White
Hyper_Column.HeaderStyle.BorderWidth = System.Web.UI.WebControls.Unit.Parse(2)
Hyper_Column.DataNavigateUrlField = "employeeid"
Hyper_Column.DataNavigateUrlFormatString = "details.aspx?ID={0}"
Hyper_Column.NavigateUrl = "details.aspx?ID={0}"
Hyper_Column.Target = "_old"
Hyper_Column.ItemStyle.HorizontalAlign = HorizontalAlign.Center
Hyper_Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
gr.Columns.Add(Hyper_Column)

分配ButtonColumn属性

Button_Column = New ButtonColumn()

Button_Column.DataTextField = "firstname"

Button_Column.DataTextFormatString = ""

Button_Column.HeaderText = "Firstname"

Button_Column.ItemStyle.BackColor = Color.Blue

Button_Column.ItemStyle.ForeColor = Color.Green

Button_Column.ItemStyle.BorderColor = Color.Black

Button_Column.ItemStyle.BorderWidth = System.Web.UI.WebControls.Unit.Parse(2)

Button_Column.ItemStyle.Width = System.Web.UI.WebControls.Unit.Parse(2)

Button_Column.HeaderStyle.ForeColor = Color.Green

Button_Column.HeaderStyle.BackColor = Color.Red

Button_Column.HeaderStyle.BorderColor = Color.Black

Button_Column.HeaderStyle.BorderWidth = System.Web.UI.WebControls.Unit.Parse(2)

Button_Column.ButtonType = ButtonColumnType.LinkButton

Button_Column.CommandName = "disp"

Button_Column.Text = ""

Button_Column.ItemStyle.HorizontalAlign = HorizontalAlign.Center

Hyper_Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Center

gr.Columns.Add(Button_Column)

调用binddata以绑定数据源
BindData()
End Sub   ' page load 

为OnItemCommand事件(DataGrid gr)创建子程序Disp()

Disp子程序被分配给gr(datagrid1)的OnItemCommand事件,在之前的代码中。

在代码中,用户单击的行已通过EventArg e接收

通过使用它,我们可以建立主从网格的关系。

 

Public Sub disp(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs)
Dim sql As String
Tab.Rows.Clear()
sql = "Select * from employees where employeeid=" & e.Item.Cells(0).Text
Conn = New SqlClient.SqlConnection("User ID=sa;Initial Catalog=Northwind;Data Source=NET7")
Cmd = New SqlCommand(sql, Conn)
Adap = New SqlDataAdapter(Cmd)
Adap.Fill(Tab)
Detail.DataSource = Tab
Detail.DataBind()
End Sub

BindData()用于将结果绑定到DataGrid(gr)
Public Sub BindData()
Dim sql As String
sql = "Select employeeid,lastname,firstname from employees"
Conn = New SqlClient.SqlConnection("User ID=sa;Initial Catalog=Northwind;Data Source=NET7")
Cmd = New SqlCommand(sql, Conn)
Adap = New SqlDataAdapter(Cmd)
Adap.Fill(Tab)
gr.DataSource = Tab
gr.DataBind()
End Sub

注意

在BindData()中,只需更改您的数据库服务器、UsrId、数据库...

这里,我使用了NorthWind数据库和Employees表,

输出

输出将是

Datagrid1 - gr -> 它将显示employeeid、firstname、lastname

Firstname作为ButtonColumn

Lastname作为HyperlinkColumn

 

如果单击HyperLink列,它将调用Detail.aspx?id= <youremployeeid>

如果单击ButtonColumn(Fristname),它将在Datagrid2中显示所有列,并显示您选择的相应Employee。

 

我希望它对您进行datagrid列操作有所帮助,

谢谢你,

 

你的,

 

Kannan.R

 

 

 

© . All rights reserved.