电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> 数据库
用代码创建DataGrid的多链接及checkbox事件响应-.NET教程,数据库应用
作者:网友供稿 点击:133
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
    本例用代码实现了创建datagrid并响应了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 ();
        //}

        #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
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·数据库开发个人总结(ADO.NET小结)-.NET教程,数据库应用
·怎么由DataSet将数据导入Excel?-.NET教程,数据库应用
·动态创建SQL Server数据库、表、存储过程-ASP教程,数据库相关
·Win32环境下动态链接库(DLL)编程原理-.NET教程,数据库应用
·封装的ADO.NET对数据库操作经典类-.NET教程,数据库应用
·在DataGridView中获得DataGridViewCheckBoxColumn的状态-ASP教程,数据库相关
·DataGrid使用心得(附大量代码)-ASP教程,数据库相关
·用代码创建DataGrid的多链接及checkbox事件响应-.NET教程,数据库应用
·ADO.NET 的最佳实践技巧-.NET教程,数据库应用
·转载: 用纯ASP代码实现图片上传并存入数据库中

最新文章
·根据数据表中数据,生成Powerpoint幻灯片-ASP教程,数据库相关
·DataGrid中的按钮反选事件与NamingContainer(命名容器)-downmoon-ASP教程,数据库相关
·使用用VB处理MYSQL数据库中二进制数据问题-.NET教程,VB.Net语言
·关于DataGridView中如何接收处于编辑状态下的当前信息-ASP教程,数据库相关
·在DataGridView中获得DataGridViewCheckBoxColumn的状态-ASP教程,数据库相关
·.net下访问Access数据库需要注意的问题-.NET教程,Asp.Net开发
·ActiveMQ4.1+Spring2.0的POJO JMS方案(上)-.NET教程,数据库应用
·ASP.NET 2.0中直接将Access数据库导入到Excel文件中-.NET教程,Asp.Net开发
·NET(C#)连接各类数据库-集锦-.NET教程,C#语言
·ASP.NET2.0连接SQL Server数据库详解-.NET教程,Asp.Net开发


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号