用代码创建DataGrid的多链接及checkbox事件响应(downmoon)
2006-04-14 12:04
507 查看
本例用代码实现了创建DataGrid并响应了CheckBox事件,并实现了超链接列的多变量传送。
创建一个前台页面
CreateDataGrid.aspx:
在Form中添加一个PlcaeHolder,ID为"ph",Runat="Server"
后台页面
CreateDatagrid.aspx.cs
再添加关键的几段
添加CheckBox事件:
创建一个前台页面
CreateDataGrid.aspx:
在Form中添加一个PlcaeHolder,ID为"ph",Runat="Server"
后台页面
CreateDatagrid.aspx.cs
![]() public class CreateDataGrid : System.Web.UI.Page ![]() ![]() ...{ ![]() public String sql = "Select FirstName,LastName,HomePhone,Title FROM Employees"; ![]() public DataGrid mygrid = new DataGrid(); ![]() protected System.Web.UI.WebControls.PlaceHolder ph; ![]() public String SortExpression; ![]() private void Page_Load(object sender, System.EventArgs e) ![]() ![]() ...{ ![]() //CreateDataGridForm.Controls.Add(MakeGrid()); ![]() ![]() this.ph.Controls.Add(MakeGrid()); ![]() } ![]() // protected override void CreateChildControls() ![]() // { ![]() ![]() //base.CreateChildControls (); ![]() //} ![]() ![]() ![]() Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码 ![]() override protected void OnInit(EventArgs e) ![]() ![]() ...{ ![]() // ![]() // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 ![]() // ![]() InitializeComponent(); ![]() base.OnInit(e); ![]() } ![]() ![]() ![]() /**//// <summary> ![]() /// 设计器支持所需的方法 - 不要使用代码编辑器修改 ![]() /// 此方法的内容。 ![]() /// </summary> ![]() private void InitializeComponent() ![]() ![]() ...{ ![]() this.Load += new System.EventHandler(this.Page_Load); ![]() ![]() } ![]() #endregion ![]() ![]() /**//// <summary> ![]() /// 创建一个模板列和一个列模板 ![]() /// </summary> ![]() ![]() public TemplateColumn tm = new TemplateColumn(); ![]() public ColumnTemplate mycol = new ColumnTemplate(); ![]() ![]() //返回DataView ![]() public DataView CreateDataSource () ![]() ![]() ...{ ![]() string strSql; ![]() strSql = "Data Source=localhost;Initial Catalog=Northwind;User Id=sa;Password=sa;"; ![]() 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); ![]() mygrid.ItemDataBound +=new DataGridItemEventHandler(mygrid_ItemDataBound); ![]() ![]() ![]() /**////设置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; ![]() ![]() ![]() /**////创建绑定列和属性 ![]() ![]() HyperLinkColumn FirstName = new HyperLinkColumn(); ![]() BoundColumn LastName = new BoundColumn(); ![]() BoundColumn HomePhone = new BoundColumn(); ![]() BoundColumn Title = new BoundColumn(); ![]() ![]() // FirstName.HeaderText="名字"; ![]() // FirstName.DataField="FirstName"; ![]() // FirstName.SortExpression="FirstName"; ![]() ![]() FirstName.HeaderText="名字"; ![]() ![]() FirstName.DataTextField ="FirstName"; ![]() FirstName.SortExpression="FirstName"; ![]() FirstName.NavigateUrl = "http://localhost/test.aspx"; ![]() ![]() 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; ![]() ![]() ![]() TemplateColumn aa=new TemplateColumn(); ![]() ColumnTemplate1 tt = new ColumnTemplate1(); ![]() aa.ItemTemplate = tt; ![]() ![]() ![]() ![]() /**////创建列模板。 ![]() ///列模板从ITemplate继承 ![]() tm.ItemTemplate = mycol; ![]() mygrid.Columns.AddAt(4, tm); ![]() mygrid.Columns.AddAt(5,aa); ![]() ![]() ![]() /**////绑定和返回 ![]() mygrid.DataSource = CreateDataSource(); ![]() mygrid.DataBind(); ![]() return mygrid; ![]() } ![]() ![]() private void mygrid_ItemDataBound(object sender, DataGridItemEventArgs e) ![]() ![]() ...{ ![]() if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) ![]() ![]() ...{ ![]() HyperLink link = (HyperLink)e.Item.Cells[0].Controls[0]; ![]() string url = link.NavigateUrl; ![]() //实现多参数链接 ![]() url += "?id=" + e.Item.Cells[1].Text + "&id2=" + e.Item.Cells[2].Text; ![]() link.NavigateUrl = url; ![]() } ![]() } ![]() } ![]() ![]() |
![]() ![]() /**//// 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); ![]() } ![]() ![]() } |
![]() public class ColumnTemplate1 : ITemplate ![]() ![]() ...{ ![]() ![]() public void InstantiateIn(Control container) ![]() ![]() ...{ ![]() Label myLabel = new Label(); ![]() myLabel.Text="test"; ![]() CheckBox lnk = new CheckBox(); ![]() lnk.AutoPostBack = true; ![]() lnk.CheckedChanged +=new EventHandler(lnk_CheckedChanged); ![]() container.Controls.Add(myLabel); ![]() container.Controls.Add(lnk); ![]() } ![]() ![]() ![]() private void lnk_CheckedChanged(object sender, EventArgs e) ![]() ![]() ...{ ![]() CheckBox lnk = (CheckBox)sender; ![]() DataGrid dg = (DataGrid)lnk.NamingContainer.NamingContainer; ![]() if(dg == null) return; ![]() //实现CheckBox事件响应 ![]() DataGridItem di =(DataGridItem)lnk.NamingContainer; ![]() HyperLink lnkID= (HyperLink)di.Cells[0].Controls[0]; ![]() string s2 = lnkID.Text.Trim()+lnk.ID+"被选中了!"; ![]() } ![]() } |
相关文章推荐
- 用代码创建DataGrid的多链接及checkbox事件响应
- 用代码创建DataGrid的多链接及checkbox事件响应(收藏)
- 用代码创建DataGrid的多链接及checkbox事件响应
- 创建DataGrid并响应了CheckBox事件
- 【Cocoa(mac) Application 开发系列之四】动作编辑器(Cocos2dx)制作流程详解及附上响应鼠标滚轴事件、反转坐标系、导入/创建资源目录等知识点代码!
- 用wx.CheckBox创建复选框控件并响应鼠标点击事件
- MFC动态创建控件并响应事件代码实现过程
- winform动态创建多个pictureBox控件并响应不同的事件代码
- wx.CheckBox创建复选框控件并响应鼠标点击事件
- 代码创建UIWindow -> UIView -> RootViewController中遇到UIview覆盖,控件事件不响应问题
- 动作编辑器(Cocos2dx)制作流程详解及附上响应鼠标滚轴事件、反转坐标系、导入/创建资源目录等知识点代码!
- 动作编辑器(Cocos2dx)制作流程详解及附上响应鼠标滚轴事件、反转坐标系、导入/创建资源目录等知识点代码
- BCB 动态创建组件的事件响应
- 在MFC中动态创建控件以及事件响应
- MFC中动态创建控件以及事件响应
- DataGrid中响应模版列中按钮事件
- javascript事件响应,各按键对应的代码(转载)
- 虽然动态创建DataGrid的代码在网上有很多,但是作为表单提交的时候却不多见?
- 我用JS写的一段创建TABLE,添加行,模糊匹配,根据CHECKBOX删除内容,创建标题的代码(删除完再添加行有计数器的BUG)
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应