首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类 我的文档
全部文章 发表文章
专栏管理 使用说明



 RSS 订阅 
最新文档列表
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
tellmenow (22)
cutemouse (22)
softj (78)
iiprogram (69)
qdzx2008 (50)
goodboy1881 (14)
wangchinaking (58)
fancyhf (1)
harrymeng (41)
yjz0065 (113)
CSDN - 文档中心 - .NET 阅读:6373   评论: 0    参与评论
标题   在后代码里创建DataGrid控件     选择自 net_lover 的 Blog
关键字   DataGrid
出处  
在后代码里创建DataGrid控件
【孟宪会之精彩世界】
在后代码里创建DataGrid控件

本文介绍如何用代码创建DataGrid,并且有四个绑定列和一个模板列,支持排序功能。

代码如下:

C#

CreateDataGrid.aspx

<%@ Page language="c#" EnableViewState = "false"Codebehind="CreateDataGrid.aspx.cs" AutoEventWireup="true" Inherits="aspxWebCS.myDataGrid" %> <script runat="server"> public void Page_Load(Object sender,EventArgs e){ CreateDataGridForm.Controls.Add(MakeGrid()); } </script> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>用代码创建DataGrid</title> <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="CreateDataGridForm" method="post" runat="server"> <div align="center"><b>用代码创建DataGrid</b></div> </form> </body> </HTML>

CreateDataGrid.aspx.cs

using System; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Drawing; /// <summary> /// CreateDataGrid 的摘要说明。 /// </summary> namespace aspxWebCS { public class myDataGrid : Page { public String sql = "Select FirstName,LastName,HomePhone,Title FROM Employees"; public DataGrid mygrid = new DataGrid(); public String SortExpression; /// <summary> /// 创建一个模板列和一个列模板 /// </summary> public TemplateColumn tm = new TemplateColumn(); public ColumnTemplate mycol = new ColumnTemplate(); //返回DataView public DataView CreateDataSource () { string strSql; strSql = "Data Source=.;Initial Catalog=Northwind;User Id=sa;Password=;"; SqlConnection conn = new SqlConnection(strSql); SqlDataAdapter db_sqladaptor = new SqlDataAdapter(sql,conn); DataSet ds = new DataSet(); db_sqladaptor.Fill(ds,"Employees"); DataView myView = ds.Tables["Employees"].DefaultView; //myView.Sort=SortExpression; //Response.Write(sql); return myView; } /// <summary> /// 处理排序 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void Sort_Grid(Object sender, DataGridSortCommandEventArgs e) { SortExpression = e.SortExpression.ToString(); Session["SortField"]=SortExpression.Trim(); if(Session["Order"]==null) Session["Order"] = "ASC"; Session["Order"] = (Session["Order"].ToString()=="DESC")?"ASC":"DESC"; if(Session["SortField"]==null) Session["SortField"] = "FirstName"; sql += " ORDER BY "+Session["SortField"].ToString() + " " + Session["Order"].ToString(); mygrid.DataSource = CreateDataSource(); mygrid.DataBind(); } /// <summary> /// 创建和设置DataGrid属性,这里的属性设置为固定值,但也可以动态设置 /// </summary> /// <returns></returns> public DataGrid MakeGrid() { mygrid.CellPadding=2; mygrid.Attributes.Add("align","center"); mygrid.CellSpacing=0; mygrid.Width=500; mygrid.BorderWidth=1; mygrid.BorderColor=ColorTranslator.FromHtml("Black"); mygrid.AutoGenerateColumns=false; mygrid.ForeColor=ColorTranslator.FromHtml("Black"); mygrid.Font.Size=9; mygrid.Font.Name="宋体"; mygrid.AllowSorting=true; ///sort命令的事件处理器 mygrid.SortCommand += new DataGridSortCommandEventHandler(Sort_Grid); ///设置headerstyle mygrid.HeaderStyle.BackColor=ColorTranslator.FromHtml("Gold"); mygrid.HeaderStyle.ForeColor=ColorTranslator.FromHtml("Black"); mygrid.HeaderStyle.Font.Name="宋体"; mygrid.HeaderStyle.Font.Size=9; mygrid.HeaderStyle.Font.Bold=true; mygrid.HeaderStyle.HorizontalAlign=HorizontalAlign.Center; ///设置alternating style mygrid.AlternatingItemStyle.BackColor=ColorTranslator.FromHtml("Silver"); mygrid.AlternatingItemStyle.ForeColor=ColorTranslator.FromHtml("Black"); ///设置itemstyle mygrid.ItemStyle.HorizontalAlign=HorizontalAlign.Left; ///创建绑定列和属性 BoundColumn FirstName = new BoundColumn(); BoundColumn LastName = new BoundColumn(); BoundColumn HomePhone = new BoundColumn(); BoundColumn Title = new BoundColumn(); FirstName.HeaderText="名字"; FirstName.DataField="FirstName"; FirstName.SortExpression="FirstName"; LastName.HeaderText="姓"; LastName.DataField="LastName"; LastName.SortExpression="LastName"; HomePhone.HeaderText="电话"; HomePhone.DataField="HomePhone"; HomePhone.SortExpression="HomePhone"; Title.HeaderText="职务"; Title.DataField="Title"; Title.SortExpression="Title"; mygrid.Columns.AddAt(0, FirstName); mygrid.Columns.AddAt(1, LastName); mygrid.Columns.AddAt(2, HomePhone); mygrid.Columns.AddAt(3, Title); ///设置模板列属性和ItemStyle模板 tm.HeaderText="**删除信息**"; tm.HeaderStyle.HorizontalAlign=HorizontalAlign.Center; tm.ItemStyle.BackColor = ColorTranslator.FromHtml("#FFF778"); tm.ItemStyle.HorizontalAlign=HorizontalAlign.Center; ///创建列模板。 ///列模板从ITemplate继承 tm.ItemTemplate = mycol; mygrid.Columns.AddAt(4, tm); ///绑定和返回 mygrid.DataSource = CreateDataSource(); mygrid.DataBind(); return mygrid; } } /// ColumnTemplate 从ITemplate继承。 /// "InstantiateIn"定义子控件的属于谁 public class ColumnTemplate : ITemplate { public void InstantiateIn(Control container) { Label myLabel = new Label(); myLabel.Text="点击删除"; CheckBox mycheckbox = new CheckBox(); container.Controls.Add(myLabel); container.Controls.Add(mycheckbox); } } }

结果如下:


相关文章
对该文的评论