zoukankan      html  css  js  c++  java
  • Asp.Net中显示控件浅析

        在asp.net中用来显示数据的控件有Repeater,DataList,DataGrid三种.

    DataGrid的灵活性很强,内置了丰富的事件,提供分页,编辑,排序等一些特性,对表格的操作也是非常方便的,而且还有很多种的风格可选,由于自带了很多的功能和特性,所以开发速度很快,容易部署。但它的性能不是很高,每次的操作都会返回到服务器。主要用在对有排序、分页、编辑和多列的显示,而且对性能的要求不是很高,一般情况下数据源是一个DateSet。

    DataList和DataGrid一样也有强大的模版特性,支持数据的编辑,性能比DataGrid好,不足之处在于开发周期相对与DataGrid较长,没有DataGrid中的编辑器,实现分页和排序比较困难。主要应用在单列的数据列表,高性能的自定义数据表。

    Repeater是完全以HTML的方式呈现,更加自由灵活,性能是三种显示控件中最高的。但不支持编辑、分页、排序,几乎没有什么特性。开发周期是最长的。主要用在一些对性能和灵活性比较高的数据的显示。

    在使用DataGrid时应该注意的一些问题

    DataGrid控件有一个很重的属性AutoGenerateColumns,默认的时候该属性的值是true,当他为true的时候,会将绑定的表中所有的字段都显示出来,而我们在实际应用的时候往往只需要把我们想要的字段显示,这时候我们要将AutoGenerateColumns属性的值设置为false,可以自定义地选择显示那些列在控件上。如果我们设置成了自动生成列,就不要再再DataGrid中指定显示列,否则就会产生重复列。

    在DataGrid中的非模版列找一个控件可以用datagriditem.Cells[第几个单元格].Controls[第几个控件] 这时候下标是从0开始的,但是在使用模版列时,Control的index必须都要加一,因为Control[0]是LiteralControl,值为空相当于一个空格。这时最好是采datagriditem.findcontrol["控件名称"]来获得。

    当我们在DataGrid中添加了按钮列的删除时,我们要去判断要删除了数据项是否为最后一项,如果是最后一项,还应判断当前页是否为第一页,如果不是第一页,应该将当前的索引减1。在DataGrid中的deleteCommand事件中添加以下代码可以实现。

    if(this.datagrid.items.count= =1)
    {
    if(this.DataGrid.CurrentPageIndex!=0)
             {
                This.DataGrid.CurrentPageIndex=this.DataGrid.CurrentPageIndex-1;
             }
    }

    在删除一条记录时为了更人性化,应该在我们点击删除按钮时,会弹出一个对话框来让我们确定是否要删除记录,在DataGrid控件的ItemDataBound事件中添加以下代码可以实现这个功能,并且是在客户端执行。

    Switch(e.Item.ItemType)
    {
        Case ListItemType.Item;
        Case ListIetmType.EditItem;
        Case ListItemType.AlternatingItem;
        LinkButton lb=(LinkButton)e.Item.Cells[].Controls[0];
        Lb.Attributs.Add(“onclick”,”return confirm(‘确定删除这条记录吗?’)”);
        Break;
    }

    上面的代码倒数第二行中的return很重要,一定不能去掉了,否则当弹出对话框后,不管你点的是“确定”还是“取消”都会删除选中记录。

    微信公众号:不止dotNET
    作者: oec2003
    出处: http://oec2003.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则 保留追究法律责任的权利。
  • 相关阅读:
    并行计算第一次作业(openmp)
    数据结构入门第二课(浙大mooc笔记)
    数据结构入门第一课(浙大mooc笔记)
    手把手教你用java实现syslog消息的收发,学不会你打我喽!
    单例模式你真的会了吗(上篇)?
    redis分布式锁,面试官请随便问,我都会
    快手面试归来篇一,希望你看后能过
    程序员不会理财,那跟咸鱼有什么区别?
    人生的康波周期,把握住一次,足以改变命运!
    各大公司面试题分类整理
  • 原文地址:https://www.cnblogs.com/oec2003/p/735659.html
Copyright © 2011-2022 走看看