using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace my ... { /**//// <summary> /// MyGrid 的摘要说明。 /// </summary> public class MyGrid ...{ public MyGrid() ...{ // // TODO: 在此处添加构造函数逻辑 // } public static DataGrid GetGrid() ...{ DataGrid gd=new DataGrid(); gd.BorderColor=ColorTranslator.FromHtml("#CC9966"); //Color.Blue;//."#CC9966"; gd.BorderColor=ColorTranslator.FromHtml("#CC9966"); //gd.BorderStyle=None; gd.BorderStyle=BorderStyle.None; gd.BorderWidth=1; gd.BackColor=Color.White; gd.CellPadding=3; gd.Style["Width"]="100%"; //gd.Width=500; gd.HeaderStyle.CssClass="HeadStyle"; gd.ItemStyle.CssClass="ItemStyle"; gd.AlternatingItemStyle.CssClass="AtemStyle"; gd.SelectedItemStyle.CssClass="SeleStyle"; gd.FooterStyle.CssClass="FootStyle"; gd.PagerStyle.CssClass="PageStyle"; return gd; } /**//// <summary> /// 动态加载数据列,colname 数据库列的字段;DataGrid 其中 str:字段名 /// _id:控件的 id /// _str:控件绑定的字段值,如果为空 显示 表格的序号 /// </summary> public class myColumn : ITemplate ...{ private string _id; private string _str; public myColumn(string id,string str) ...{ _id=id; _str=str; } public void InstantiateIn(Control container) ...{ /**//*Label l=new Label(); l.ID=_id; //l.Text=_str; l.DataBinding += new EventHandler(this.myBind); container.Controls.Add(l); */ LiteralControl l = new LiteralControl(); l.DataBinding += new EventHandler(this.myBind); container.Controls.Add(l); } public void myBind(object sender,EventArgs e) ...{ /**//*Label l=(Label)sender; l.Text=sender.ToString(); */ LiteralControl l = (LiteralControl)sender; l.ID=_id; //将控件转化成 DataGridItem DataGridItem container = (DataGridItem)l.NamingContainer; if(_str!="") l.Text = ((DataRowView)container.DataItem)[_str].ToString();//绑定 DataGrid 数据字段 else l.Text=(container.DataSetIndex+1).ToString();//显示 表格的 序号 } } public class myCheck:ITemplate ...{ private string _id; private string _val; public myCheck(string id,string val) ...{ this._id=id; this._val=val; } public void InstantiateIn(Control container) ...{ CheckBox ck=new CheckBox(); ck.DataBinding+=new EventHandler(this.BindData); container.Controls.Add(ck); } public void BindData(object sender,EventArgs e) ...{ CheckBox ck=(CheckBox)sender; DataGridItem conrs=(DataGridItem)ck.NamingContainer; //ck.Text=((DataRowView)conrs.DataItem)[_val].ToString(); ck.ID=_id; //ck.Attributes.Add("onclick","myck(this);"); } } /**//// <summary> /// 动态加载数据列,colname 数据库列的字段;DataGrid 其中 str:字段名 /// 绑定的是一个 TextBox 控件 /// </summary> public class GenericItem : ITemplate ...{ private string column; public GenericItem(string column) ...{ this.column = column; } public void InstantiateIn(Control container) ...{ TextBox txt = new TextBox(); txt.DataBinding += new EventHandler(this.BindData); container.Controls.Add(txt); } public void BindData(object sender, EventArgs e) ...{ TextBox txt = (TextBox)sender; DataGridItem container = (DataGridItem)txt.NamingContainer; txt.Text = ((DataRowView)container.DataItem)[column].ToString(); } } /**//// <summary> /// 动态加载数据列,colname 数据库列的字段; /// 应用到 vs 2005 中的 dataview 中 /// </summary> public class MyTemplate:ITemplate ...{ private string colname; public MyTemplate(string colname) ...{ this.colname = colname; } public void InstantiateIn(Control container) ...{ LiteralControl l = new LiteralControl(); l.DataBinding += new EventHandler(this.OnDataBinding); container.Controls.Add(l); } public void OnDataBinding(object sender, EventArgs e) ...{ LiteralControl l = (LiteralControl)sender; //GridViewRow container = (GridViewRow)l.NamingContainer; //l.Text = ((DataRowView)container.DataItem)[colname].ToString(); } } }}