每日一题之gridview

来源:互联网 发布:软件产品质量 编辑:程序博客网 时间:2024/06/10 08:26

昨天写程序有个小的知识点忘记写下了,今天补上~~

昨天做网站的时候,又一次用到了grieview。最近总是在反复的用这个控件,总感觉自己对这个控件不太感冒,所有接受起来有点吃力,所以决定把它的所有的用法都收藏起来。

gridview 分页 给每页的所有数据加上序号 如果换页,序号继续。倒如:每页10条,如果本次显示的是15条,则在第二页显示的是11-15

先把gridview控件的分页功能设置好

AllowPaging:true

PagingSize:10 这个可以按照自己的需求来设置

源代码:

<asp:GridView PagerSettings-Visible="false" ID="GridView1" runat="server" AutoGenerateColumns="False"
                            Height="16px" Width="625px" AllowPaging="True"
                        onpageindexchanging="GridView1_PageIndexChanging"
                            onrowdatabound="GridView1_RowDataBound">
                        <PagerSettings FirstPageText="首页" LastPageText="尾页"
                            FirstPageImageUrl="~/users/images/news fenye1.jpg"
                            LastPageImageUrl="~/users/images/news right.jpg" NextPageText="下一页" />
                        <Columns>
                            <asp:BoundField >
                            <ItemStyle Width="80px" />
                            </asp:BoundField >
                            <asp:TemplateField>
                            <ItemTemplate><a href="NewsDetail.aspx?id=<%#Eval("id") %>"><%#Eval("title") %></a></ItemTemplate>
                            <ItemStyle Width="330px" />
                            </asp:TemplateField>
                           
                            <asp:BoundField DataField="author" HeaderText="" >
                            <ItemStyle Width="80px"  />
                            </asp:BoundField>
                            <%--<asp:TemplateField>
                            <ItemTemplate>
                            <table><tr><td style=" width:50px"> <%#Eval("body") %></td></tr></table>
                           </ItemTemplate>--%>
                            <%--</asp:TemplateField>--%>
                            <asp:BoundField DataField="times" HeaderText="" DataFormatString="{0:d}" />
                        </Columns>
                        <PagerStyle Width="10px" Wrap="False" />
                    </asp:GridView>

后台程序:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using BLL;
using DAL;
using System.Collections.Generic;

public partial class News : System.Web.UI.Page
{
  
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            dataBind();
        }
    }
    private void dataBind()
    {
       NewsTypeManager ntm=new NewsTypeManager ();
       Repeater1.DataSource = ntm.GetAllNewsTypeList();
       Repeater1.DataBind();
       //绑定girdview
       NewsManager newsManager = new NewsManager();
       int userId = Convert.ToInt32(Request.QueryString["id"]);
       GridView1.DataSource = newsManager.getNewsListByUserId(userId);
       GridView1.DataBind();
 
    }

 

最重要的部分:

//实现分布功能

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        dataBind(); 
        
    }

//实现序号
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (e.Row.RowIndex != -1)
            {
                int pageIndex = GridView1.PageIndex;
                int id = e.Row.RowIndex+pageIndex*10 + 1;
                e.Row.Cells[0].Text = id.ToString();
            }    
        }
    }

 

好了先写这些吧,留着以后用。