在后代码里创建DataGrid控件

原创 2003年11月04日 01:30:00
在后代码里创建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); } } }

结果如下:

在后代码里创建DataGrid控件

  • hejishan
  • hejishan
  • 2008年03月11日 12:09
  • 240

在后代码里创建DataGrid控件

 在后代码里创建DataGrid控件 本文介绍如何用代码创建DataGrid,并且有四个绑定列和一个模板列,支持排序功能。 代码如下: C# CreateDataGrid.aspx  AutoEven...
  • colayungnew
  • colayungnew
  • 2004年10月14日 15:57
  • 558

在后代码里创建DataGrid控件

在后代码里创建DataGrid控件 本文介绍如何用代码创建DataGrid,并且有四个绑定列和一个模板列,支持排序功能。代码如下:C#CreateDataGrid.aspx...
  • luoboqingcai
  • luoboqingcai
  • 2004年09月25日 18:23
  • 490

js动态创建DataGrid

和上一篇一样,使用JS动态的创建datagrid也是一件非常简单的事情,以项目中的实例来做说明,当然easyui的官网文档也有,例子很简单: ①从后台获取数据 ②根据需要显示...
  • wang13667539325
  • wang13667539325
  • 2015年04月30日 21:19
  • 6244

FLEX如何动态创建DataGrid组件详解

初学FLEX时,需要在AS里动态生成DataGrid,结果搞了很久才搞明白怎么把用MXML写出来的DataGrid改成用AS写出来,其中最主要的就是自定义itemEditor、itemRender怎么...
  • lulei9876
  • lulei9876
  • 2013年07月11日 20:42
  • 2491

vs中使用DataGrid控件

今天做用vs2013做对话框时需要用到DataGrid控件,用vc的话可以“Project→Add To Project→Components and Controls”,然后选择Microsoft ...
  • x1165952707
  • x1165952707
  • 2015年05月05日 14:25
  • 308

DataGrid控件用法详解

转自:http://www.vckbase.com/document/viewdoc/?id=1164 作者:万建华 下载源代码 写在前面   刚写这个题目,就觉得肩上...
  • banrixianxin
  • banrixianxin
  • 2014年05月16日 00:23
  • 4486

WPF DataGrid的创建,前台代码构建,后台代码构建

1 前台代码
  • czf2505
  • czf2505
  • 2014年01月06日 18:12
  • 868

datagrid控件使用技巧大集合

引用自:http://www.cnblogs.com/iCeSnaker/archive/2004/07/31/29017.aspx  1、DataGrid的正反双向排序 http://dev.csd...
  • mengyao
  • mengyao
  • 2007年02月17日 08:49
  • 8488

Swift基础教程(swift代码创建第一个控件之UILabel)

首先 给需要创建的label 设置frame let textLabel = UILabel(frame:CGRectMake(self.view.frame.size.width/8,20,s...
  • yangchen9931
  • yangchen9931
  • 2015年04月29日 22:10
  • 1055
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在后代码里创建DataGrid控件
举报原因:
原因补充:

(最多只允许输入30个字)