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

📄 treeviewtemplatefieldcode.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;
using System.Data.SqlClient;

public partial class TreeViewTemplateFieldCode : 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();
				TreeView myTreeView = new TreeView();
				RadioButton txtFirstName = new RadioButton();
				CheckBox txtCity = new CheckBox();

				//指定样板字段的数据绑定事件
				switch (columnName)
				{
					case "员工编号":
						myTreeView.DataBinding += new EventHandler(this.EmployeeID_DataBinding);
						container.Controls.Add(myTreeView);
						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)
		{
			TreeView TreeView1 = (TreeView)sender;
			//TreeView1.ShowCheckBoxes = true;
			TreeNode RootNode = new TreeNode(); //创建节点实体
			RootNode.Text = "电脑产品总览";//设置节点的显示文字
			RootNode.Value = "电脑产品";    //设置节点的数值
			RootNode.NavigateUrl = "TreeViewTemplateFieldCode.aspx";  //设置节点的Url
			RootNode.CollapseAll();
			TreeView1.Nodes.Add(RootNode);  //添加节点


			//在Root Node添加Parent Node
			TreeNode CpuNode = new TreeNode();
			TreeNode MbNode = new TreeNode();
			TreeNode HddNode = new TreeNode();

			CpuNode.Text = "CPU";
			CpuNode.NavigateUrl = "TreeViewTemplateFieldCode.aspx";
			MbNode.Text = "主板";
			MbNode.NavigateUrl = "TreeViewTemplateFieldCode.aspx";
			HddNode.Text = "硬盘";
			HddNode.NavigateUrl = "TreeViewTemplateFieldCode.aspx";


			RootNode.ChildNodes.Add(CpuNode);
			RootNode.ChildNodes.Add(MbNode);
			RootNode.ChildNodes.Add(HddNode);
			TreeView1.CollapseAll();
			TreeView1.ShowLines = true;
		}


		//样板的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 + -