首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 操作系统-> Windows 2000教程
asp.net 2.0下一个标准GRIDVIEW功能的实现(不用datasource控件)-.NET教程,Asp.Net开发
作者:网友供稿 点击:445
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
 

在asp.net 2.0下,gridview是十分方便的了,加一个datasource系列的控件的话,就可以马上和gridview绑定,十分方便。但其实也可以
使用datatable或者dataview的,这个时候就不是用datasource系列控件了。下面讲下如何在asp.net 2.0下,实现gridview控件的翻页,各列排序,
编辑的功能。
    首先,我们读取的是northwind数据库中的employee表。放置一个gridview后,添加几个绑定的列,代码如下
 <asp:gridview id="gridview1" runat="server" allowpaging="true" allowsorting="true"
            autogeneratecolumns="false" cellpadding="4" forecolor="#333333" gridlines="none"
            width="100%" datakeynames="employeeid" onpageindexchanging="gridview1_pageindexchanging" onrowediting="gridview1_rowediting" onrowupdating="gridview1_rowupdating" onsorting="gridview1_sorting" pagesize="3" onrowcancelingedit="gridview1_rowcancelingedit" onrowcommand="gridview1_rowcommand">
            <footerstyle backcolor="#990000" font-bold="true" forecolor="white" />
            <columns>
                <asp:boundfield datafield="employeeid" headertext="employee id" readonly="true" />
                <asp:boundfield datafield="firstname" headertext="first name" sortexpression="firstname" />
                <asp:boundfield datafield="lastname" headertext="last name" sortexpression="lastname" />
                <asp:commandfield showeditbutton="true" />
            </columns>
            <rowstyle backcolor="#fffbd6" forecolor="#333333" />
            <selectedrowstyle backcolor="#ffcc66" font-bold="true" forecolor="navy" />
            <pagerstyle backcolor="#ffcc66" forecolor="#333333" horizontalalign="center" />
            <headerstyle backcolor="#990000" font-bold="true" forecolor="white" />
            <alternatingrowstyle backcolor="white" />
        </asp:gridview>

首先,我们要实现分页,把allowpaging设置为true,并设置每页的分页条数,最后在codebehind中写入
protected void gridview1_pageindexchanging(object sender, gridviewpageeventargs e)
    {
        gridview1.pageindex = e.newpageindex;
        bindgrid();
    }
  为了实现每列都可以自动点击排序,可以设置allowsorting=true,然后设置onsorting="gridview1_sorting",其中gridview_sorting
代码为
  protected void gridview1_sorting(object sender, gridviewsorteventargs e)
    {
        viewstate["sortexpression"] = e.sortexpression;

        if (viewstate["sortdirection"] == null)
        {
            viewstate["sortdirection"] = "asc";
        }
        else
        {
            if (viewstate["sortdirection"].tostring() == "asc")
            {
                viewstate["sortdirection"] = "desc";
            }
            else
            {
                viewstate["sortdirection"] = "asc";
            }
        }
        bindgrid();
    }
很明显,设置viewsate来保存每次排序时的顺序,上面的相信很容易理解。
     最后,实现编辑功能,因为在aspx页面中已经设置了onrowediting="gridview1_rowediting",其中gridview1_rowediting的代码为
 protected void gridview1_rowupdating(object sender, gridviewupdateeventargs e)
    {
        int empid;
        string fname, lname;
        empid = int.parse(gridview1.rows[e.rowindex].cells[0].text);
        fname = ((textbox)gridview1.rows[e.rowindex].cells[1].controls[0]).text;
        lname = ((textbox)gridview1.rows[e.rowindex].cells[2].controls[0]).text;

        sqlconnection cnn = new sqlconnection(@"data source=localhost;initial catalog=northwind;user id=sa;password=123456");
        cnn.open();
        sqlcommand cmd = new sqlcommand("update employees set firstname=@fname,lastname=@lname where employeeid=@empid", cnn);
        cmd.parameters.add(new sqlparameter("@fname",fname));
        cmd.parameters.add(new sqlparameter("@lname", lname));
        cmd.parameters.add(new sqlparameter("@empid", empid));
        cmd.executenonquery();
        cnn.close();

        gridview1.editindex = -1;
        bindgrid();
    }
    protected void gridview1_rowediting(object sender, gridviewediteventargs e)
    {
        gridview1.editindex = e.neweditindex;
        bindgrid();
    }
    protected void gridview1_rowcancelingedit(object sender, gridviewcancelediteventargs e)
    {
        gridview1.editindex = -1;
        bindgrid();
    }

  可以看到,上面的代码和asp.net 1.1版本的其实原理是差不多的。最后,bindgrid()的过程很简单,为绑定咯
dataset ds = new dataset();
        sqldataadapter da = new sqldataadapter("select * from employees", @"data source=localhost;initial catalog=northwind;user id=sa;password=123456");
        da.fill(ds,"employees");
        dataview dv = ds.tables[0].defaultview;

        if (viewstate["sortexpression"] != null)
        {
            dv.sort = viewstate["sortexpression"].tostring() + " " + viewstate["sortdirection"].tostring();
        }

        gridview1.datasource=dv;
        gridview1.databind();

这里gridview绑定的是dataview,并且用dv.sort设定了每次排序的顺序,也就是说,每次排序后其顺序都是保持不变的。
当然最后是page_load事件咯
   protected void page_load(object sender, eventargs e)
    {
        if(!ispostback)
        {
            bindgrid();
        }
    }


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·三层结构ASP.NET程序中,把实体类自动显示在页面上的例子(c#)-.NET教程,Asp.Net开发
·windows 2000 server系统帐号安全设置技巧
·java-汉字问题深入谈-JSP教程,Java技巧及代码
·asp.net 2.0下一个标准GRIDVIEW功能的实现(不用datasource控件)-.NET教程,Asp.Net开发
·自定义JSP标签(tag)浅议-JSP教程,Jsp/Servlet
·DataGrid输出到Excel并进行格式化处理-.NET教程,数据库应用
·The key of C# 学习笔记II-.NET教程,C#语言
·windows 2000操作系统启动菜单详解
·GridView的几个事件(如实现: 行的双击/单击/捕捉键盘按键/鼠标悬浮/移出效果)(示例代码下载)-.NET教程,评论及其它
·发邮件的JAVA程序-JSP教程,邮件相关
最新文章
·在vista系统中任意设定鼠标滚动行数_windows vista
·英文blog赚钱的几个方向_网赚技巧
·做google adsense必备的点击统计软件asrep_网赚技巧
·十大adsense工具! top 10 adsense tools_网赚技巧
·php5对mysql5的任意数据库表的管理代码示例(四)_php技巧
·php5对mysql5的任意数据库表的管理代码示例(二)_php技巧
·用好的设计替代不好的_站长心得
·个人网站的常见五大弊病_站长心得
·使用google的广告十天后的观感和博客的钱途_google推广
·关于google adsense的几个敏感问题_google推广
相关主题
  • asp.net应用程序资源访问安全模型_asp.net技巧
  • asp.net中多彩下拉框的实现_asp.net技巧
  • asp.net中数据校验部分的封装与应用_asp.net技巧
  • asp.net网络编程中常用到的27个函数集_asp.net基础
  • asp.net2.0学习历程 菜鸟到中级程序员的飞跃_asp.net基础
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭