⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 templatefieldcode.aspx.cs

📁 《圣殿祭司的ASP.NET 2.0开发详解——使用C#》光盘内容.包含了书籍所含的源代码.非常经典的一本asp.net2.0的书籍
💻 CS
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;

public partial class TemplateFieldCode : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
		if (!IsPostBack)
		{
			//txtColumn.Text = "请选择任何意一行";
			setGridViewStyle();
			setFields();
		}

		//设置SqlDataSource连接及Select命令
		sqlDS.ConnectionString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
		sqlDS.SelectCommand = "SELECT [EmployeeID],[FirstName], [City] FROM [Employees]";
		//设置GridView资料来源ID
		gviewEmployee.DataSourceID = sqlDS.ID;
    }

	//设置GridView外观样式
	private void setGridViewStyle()
	{
		gviewEmployee.AutoGenerateColumns = false;
		//设置Row的键值组成,具有唯一性
		string[] KeyNames = new string[] { "EmployeeID" };
		gviewEmployee.DataKeyNames = KeyNames;

		//设置GridView属性
		gviewEmployee.AllowPaging = true;	//设置分页
		gviewEmployee.AllowSorting = true;	//设置排序
		gviewEmployee.Font.Size = 10;		//设置字号大小
		gviewEmployee.GridLines = GridLines.Both;	//设置网格线
		gviewEmployee.PageSize = 15;
		gviewEmployee.PagerStyle.HorizontalAlign = HorizontalAlign.Center; //分页对齐

		gviewEmployee.HeaderStyle.BackColor = Color.Tan;
		gviewEmployee.RowStyle.BackColor = Color.LightGoldenrodYellow;
		gviewEmployee.AlternatingRowStyle.BackColor = Color.PaleGoldenrod;
		gviewEmployee.HeaderStyle.ForeColor = Color.Black;
		gviewEmployee.PagerStyle.BackColor = Color.Goldenrod;
		gviewEmployee.ShowFooter = true;
	}

	//创建及设置Fields字段
	private void setFields()
	{
		TemplateField templateField1 = new TemplateField();
		templateField1.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, "员工编号");

		TemplateField templateField2 = new TemplateField();
		templateField2.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, "名字");

		TemplateField templateField3 = new TemplateField();
		templateField3.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, "县市");

		//将字段添加到GridView
		gviewEmployee.Columns.Add(templateField1);
		gviewEmployee.Columns.Add(templateField2);
		gviewEmployee.Columns.Add(templateField3);
	}

	//样板类产生器,以创建样板字段
	public class GridViewTemplate : ITemplate
	{
		private DataControlRowType templateType;
		private string columnName;

		public GridViewTemplate(DataControlRowType type, string colname)
		{
			templateType = type;
			columnName = colname;
		}

		public void InstantiateIn(System.Web.UI.Control container)
		{
			if (templateType == DataControlRowType.DataRow)
			{
				//创建样板字段外观
				TextBox txtEmployeeID = new TextBox();
				RadioButton txtFirstName = new RadioButton();
				CheckBox txtCity = new CheckBox();

				//指定样板字段的数据绑定事件
				switch (columnName)
				{
					case "员工编号":
						txtEmployeeID.DataBinding += new EventHandler(this.EmployeeID_DataBinding);
						container.Controls.Add(txtEmployeeID);
						break;
					case "名字":
						txtFirstName.DataBinding += new EventHandler(this.FirstName_DataBinding);
						container.Controls.Add(txtFirstName);
						break;
					case "县市":
						txtCity.DataBinding += new EventHandler(this.City_DataBinding);
						container.Controls.Add(txtCity);
						break;
				}
			}
		}

		//样板的DataBind--员工代号
		private void EmployeeID_DataBinding(Object sender, EventArgs e)
		{
			TextBox txtEmployeeID = (TextBox)sender;
			//取得GridViewRow(包含TexBox控件)
			GridViewRow row = (GridViewRow)txtEmployeeID.NamingContainer;
			//进行数据绑定
			txtEmployeeID.Text = DataBinder.Eval(row.DataItem, "EmployeeID").ToString();
		}

		//样板的DataBind--名字
		private void FirstName_DataBinding(Object sender, EventArgs e)
		{
			RadioButton rdoFirstName = (RadioButton)sender;
			//取得GridViewRow(包含RadioButton控件).
			GridViewRow row = (GridViewRow)rdoFirstName.NamingContainer;
			//进行数据绑定
			rdoFirstName.Text = DataBinder.Eval(row.DataItem, "FirstName").ToString();
		}

		//样板的DataBind--县市
		private void City_DataBinding(Object sender, EventArgs e)
		{
			CheckBox cbxCity = (CheckBox)sender;
			//取得GridViewRow(包含CheckBox控件)
			GridViewRow row = (GridViewRow)cbxCity.NamingContainer;
			//进行数据绑定
			cbxCity.Text = DataBinder.Eval(row.DataItem, "City").ToString();
		}
	}

	//换页事件
	protected void gviewEmployee_PageIndexChanging(object sender, GridViewPageEventArgs e)
	{
		setFields();
	}

	//在Row创建时添加Header与Footer
	protected void gviewEmployee_RowCreated(object sender, GridViewRowEventArgs e)
	{
		switch (e.Row.RowType)
		{
			//若Row为Header
			case DataControlRowType.Header:
				//取得Row的所有Cells
				TableCellCollection headerTC = e.Row.Cells;	
				headerTC.Clear();	//清除所有的Cells
				//创建TableCell
				TableHeaderCell gviewHeader1 = new TableHeaderCell();
				Literal txtHeader1 = new Literal();
				txtHeader1.Text = "员工编号";
				gviewHeader1.Controls.Add(txtHeader1);

				TableHeaderCell gviewHeader2 = new TableHeaderCell();
				Literal txtHeader2 = new Literal();
				txtHeader2.Text = "名字";
				gviewHeader2.Controls.Add(txtHeader2);

				TableHeaderCell gviewHeader3 = new TableHeaderCell();
				Literal txtHeader3 = new Literal();
				txtHeader3.Text = "县市";
				gviewHeader3.Controls.Add(txtHeader3);

				headerTC.Add(gviewHeader1);
				headerTC.Add(gviewHeader2);
				headerTC.Add(gviewHeader3);
				break;
			//若Row为Footer
			case DataControlRowType.Footer:
				TableCellCollection footerTC = e.Row.Cells;
				footerTC.Clear();
				//创建TableCell
				TableHeaderCell gviewFooter1 = new TableHeaderCell();
				Literal txtFooter1 = new Literal();
				txtFooter1.Text = "注一";
				gviewFooter1.Controls.Add(txtFooter1);

				TableHeaderCell gviewFooter2 = new TableHeaderCell();
				Literal txtFooter2 = new Literal();
				txtFooter2.Text = "注二";
				gviewFooter2.Controls.Add(txtFooter2);

				TableHeaderCell gviewFooter3 = new TableHeaderCell();
				Literal txtFooter3 = new Literal();
				txtFooter3.Text = "注三";
				gviewFooter3.Controls.Add(txtFooter3);

				footerTC.Add(gviewFooter1);
				footerTC.Add(gviewFooter2);
				footerTC.Add(gviewFooter3);
				break;
		}
	}

	//设置字段宽度
	protected void gviewEmployee_DataBound(object sender, EventArgs e)
	{
		gviewEmployee.Columns[0].ControlStyle.Width = 30;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -