技巧百问(8):再谈ASP.NET中DataGrid数据绑定以及分页!
2005-12-01 14:11
661 查看
DataGrid使用的很多,其中数据绑定以及分页是个老问题,这里我只是把我个人的一点经验说一说,毕竟我还是新手。
DataGrid绑定有很多种,可以用DataView,DataReader,DataSet这些来绑定,还可以使用自定义控件来绑定,其实说穿了也就是数据对应显示。而分页也有很多种:1、使用sql语句,select top 10 from xxx where xxx,后面就加not in (select top 10 from xxx where xxx)。2、使用一次读取数据,然后通过程序控制分页。
下面是一个简单分页以及绑定的过程:
先创建DataGrid
1 <asp:DataGrid AllowPaging="true" AllowSorting="true" AutoGenerateColumns="false" Width="100%" OnPageIndexChanged="changepage"
2 FooterStyle-BackColor="#0099FF" ID="datagrid1" ItemStyle-BackColor="#006699" PagerStyle-NextPageText="下一页" PagerStyle-PrevPageText="上一页" PageSize="20" runat="server">
3 <columns>
4 <asp:BoundColumn HeaderText="用户编号" HeaderStyle-Width="100" ItemStyle-Width="50" DataField="_userid"/>
5 <asp:BoundColumn HeaderText="用户名" HeaderStyle-Width="100" ItemStyle-Width="100" DataField="id"/>
6 <asp:BoundColumn HeaderText="电子邮件" HeaderStyle-Width="150" ItemStyle-Width="150" DataField="email"/>
7 <asp:BoundColumn HeaderText="类型" HeaderStyle-Width="50" ItemStyle-Width="50" DataField="type"/>
8 </columns>
9 </asp:DataGrid>
其中AllowPaging是允许自动分页,AllowSorting是允许自动排序,AutoGenerateColumns是允许自动生成列(如何要自己定义列这里就要设为false),后面就是分页的事件,PagerStyle-mode是分页时候下面显示的类型,默认是上一页,下一页那种,还有就是NumericPages,显示的是12345那种类型。下面的columns中就是要显示的列,后面DataField就是要绑定的字段名。
然后就是写Page_Load代码,一开始就要绑定,所以就是查询数据库获取数据
1 string sql="select _userid,id,type,email from user where city!='空' order by _userid desc";
2 string connstr="uid=sa;password=123;database=kkk;server=(local)";
3 SqlConnection conn=new SqlConnection(connstr);
4 SqlDataAdapter comm=new SqlDataAdapter(sql,conn);
5 DataSet isset=new DataSet();
6 comm.Fill(isset,"User");
7 DataView isview=new DataView(isset.Tables["User"]);
8 datagrid1.DataSource=isview;
9 datagrid1.DataBind();
这里就是使用DataView的方式绑定的,先定义连接,再通过SqlDataAdapter读取数据,再把数据填充到DataSet中的User表中,把DataSet表中的内容给DataView,然后就绑定DataGrid。其实这很简单,在我前面发的DataGrid和XML读取数据中有读取XML数据绑定的方法,其中还可以设置Sort来排顺。
接下来是定义DataGrid中分页的事件
1 datagrid1.CurrentPageIndex=e.NewPageIndex;
2 binding(); 其中的binding()就是上面的绑定代码,这里可以把之前的绑定代码写成函数来调用。
这样就完成了简单的数据读取,绑定以及分页。
在使用的过程中我们有时候需要把查询的数据进行处理后显示,比如查询到用户的类型1,但是我们需要看到是普通用户还是特殊用户,这里就需要使用自定义控件来时间了。
1 <%@ Register TagPrefix="user" TagName="money" Src="xxx.ascx" %>
2
3 <asp:TemplateColumn HeaderText="充值数量" HeaderStyle-Width="70" ItemStyle-Width="200">
4 <itemtemplate><user:money id="check1" runat="server" uid=<%# DataBinder.Eval(Container.DataItem,"id")%>/>
5 </itemtemplate>
6 </asp:TemplateColumn>
这里就是先编写xxx.ascx,然后在网页中注册标签(第一行就是),然后在DataGrid中使用,这里要使用asp:TemplateColumn来绑定。其中的<%# DataBinder.Eval(Container.DataItem,"id")%>就是绑定的内容,而前面的就是引用自定义的控件。顺便说一下columns中的绑定方法:之前示范的是一种,还有的是使用最先的DataFiled的方法,还有一种就是之前示范的用asp:TemplateColumn,不过在itemtemplate中用<%# DataBinder.Eval(Container.DataItem,"id")%>
以上就是一些简单的DataGrid使用方法,大家交流交流。
DataGrid绑定有很多种,可以用DataView,DataReader,DataSet这些来绑定,还可以使用自定义控件来绑定,其实说穿了也就是数据对应显示。而分页也有很多种:1、使用sql语句,select top 10 from xxx where xxx,后面就加not in (select top 10 from xxx where xxx)。2、使用一次读取数据,然后通过程序控制分页。
下面是一个简单分页以及绑定的过程:
先创建DataGrid
1 <asp:DataGrid AllowPaging="true" AllowSorting="true" AutoGenerateColumns="false" Width="100%" OnPageIndexChanged="changepage"
2 FooterStyle-BackColor="#0099FF" ID="datagrid1" ItemStyle-BackColor="#006699" PagerStyle-NextPageText="下一页" PagerStyle-PrevPageText="上一页" PageSize="20" runat="server">
3 <columns>
4 <asp:BoundColumn HeaderText="用户编号" HeaderStyle-Width="100" ItemStyle-Width="50" DataField="_userid"/>
5 <asp:BoundColumn HeaderText="用户名" HeaderStyle-Width="100" ItemStyle-Width="100" DataField="id"/>
6 <asp:BoundColumn HeaderText="电子邮件" HeaderStyle-Width="150" ItemStyle-Width="150" DataField="email"/>
7 <asp:BoundColumn HeaderText="类型" HeaderStyle-Width="50" ItemStyle-Width="50" DataField="type"/>
8 </columns>
9 </asp:DataGrid>
其中AllowPaging是允许自动分页,AllowSorting是允许自动排序,AutoGenerateColumns是允许自动生成列(如何要自己定义列这里就要设为false),后面就是分页的事件,PagerStyle-mode是分页时候下面显示的类型,默认是上一页,下一页那种,还有就是NumericPages,显示的是12345那种类型。下面的columns中就是要显示的列,后面DataField就是要绑定的字段名。
然后就是写Page_Load代码,一开始就要绑定,所以就是查询数据库获取数据
1 string sql="select _userid,id,type,email from user where city!='空' order by _userid desc";
2 string connstr="uid=sa;password=123;database=kkk;server=(local)";
3 SqlConnection conn=new SqlConnection(connstr);
4 SqlDataAdapter comm=new SqlDataAdapter(sql,conn);
5 DataSet isset=new DataSet();
6 comm.Fill(isset,"User");
7 DataView isview=new DataView(isset.Tables["User"]);
8 datagrid1.DataSource=isview;
9 datagrid1.DataBind();
这里就是使用DataView的方式绑定的,先定义连接,再通过SqlDataAdapter读取数据,再把数据填充到DataSet中的User表中,把DataSet表中的内容给DataView,然后就绑定DataGrid。其实这很简单,在我前面发的DataGrid和XML读取数据中有读取XML数据绑定的方法,其中还可以设置Sort来排顺。
接下来是定义DataGrid中分页的事件
1 datagrid1.CurrentPageIndex=e.NewPageIndex;
2 binding(); 其中的binding()就是上面的绑定代码,这里可以把之前的绑定代码写成函数来调用。
这样就完成了简单的数据读取,绑定以及分页。
在使用的过程中我们有时候需要把查询的数据进行处理后显示,比如查询到用户的类型1,但是我们需要看到是普通用户还是特殊用户,这里就需要使用自定义控件来时间了。
1 <%@ Register TagPrefix="user" TagName="money" Src="xxx.ascx" %>
2
3 <asp:TemplateColumn HeaderText="充值数量" HeaderStyle-Width="70" ItemStyle-Width="200">
4 <itemtemplate><user:money id="check1" runat="server" uid=<%# DataBinder.Eval(Container.DataItem,"id")%>/>
5 </itemtemplate>
6 </asp:TemplateColumn>
这里就是先编写xxx.ascx,然后在网页中注册标签(第一行就是),然后在DataGrid中使用,这里要使用asp:TemplateColumn来绑定。其中的<%# DataBinder.Eval(Container.DataItem,"id")%>就是绑定的内容,而前面的就是引用自定义的控件。顺便说一下columns中的绑定方法:之前示范的是一种,还有的是使用最先的DataFiled的方法,还有一种就是之前示范的用asp:TemplateColumn,不过在itemtemplate中用<%# DataBinder.Eval(Container.DataItem,"id")%>
以上就是一些简单的DataGrid使用方法,大家交流交流。
相关文章推荐
- 【Jqurey EasyUI+Asp.net】----DataGrid数据绑定,以及增、删、改(SQL)
- 【Jqurey EasyUI+Asp.net】----DataGrid数据绑定,以及增、删、改(SQL)
- ASP.NET Repeater绑定数据并实现分页
- ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(二)
- [参考]一个ASP.Net的DataGrid分页控件,在Oracle数据库下,每次只取当前页的数据,不使用存储过程
- ASP.NET Repeater绑定数据并实现分页
- asp.net and datagrid 动态绑定数据列与存取特定列的值
- ASP.NET Repeater绑定数据并实现分页
- asp.net MVC的EF与easyui DataGrid数据绑定
- ASP.NET FormView - 动态模版以及数据绑定到DynamicObject
- 关于使用asp.net 的分页显示数据。Repeater绑定数据后的分页显示。
- asp.net customdatagrid 或gridview绑定数据的时候经常要用到的 ItemDataBound 事件的方法
- Asp.net使用jQuery实现数据绑定与分页
- AspNetAjaxPager,Asp.Net通用无刷新Ajax分页控件,支持多样式多数据绑定
- 【EntityFramework系列教程三,翻译】在ASP.NET MVC程序中使用EntityFramework对数据进行排序、过滤筛选以及实现分页
- asp.net中使用分页控件,并绑定数据到GridView或Repeater
- ASP.NET使用EasyUI-DataGrid + ashx + JQuery Ajax:实现数据的增删查改,查询和分页!
- AspNetAjaxPager,Asp.Net通用无刷新Ajax分页控件,支持多样式多数据绑定
- [翻译]在ASP.NET MVC中绑定数据(包括分页和排序)
- asp.net DataGrid实现分页显示数据