📄 templatefieldcode.aspx.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 + -