创建一个前台页面
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 (); //} #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); } } |
添加checkbox事件:
| 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+"被选中了!"; } } |
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!


