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






1.41/5 (7投票s)
2005年12月15日
2分钟阅读

78579

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.WhiteHyper_Column.ItemStyle.ForeColor = Color.GreenHyper_Column.ItemStyle.BorderColor = Color.BlackHyper_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.BlueHyper_Column.HeaderStyle.BackColor = Color.YellowHyper_Column.HeaderStyle.BorderColor = Color.WhiteHyper_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.CenterHyper_Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Centergr.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).TextConn = 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 = TabDetail.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 = Tabgr.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