加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 来自CodeBehind的GridView在C#Paging中无法正常工作

发布时间:2020-12-16 07:11:10 所属栏目:asp.Net 来源:网络整理
导读:当我点击在我的GridView上它不会转到下一组记录. DataGrid dataGrid = new DataGrid(); dataGrid.PageSize = 5; dataGrid.AllowPaging = true; dataGrid.EnableViewState = true; dataGrid.DataSource = customerDataTable; dataGrid.AllowPaging (); if (!I
当我点击>在我的GridView上它不会转到下一组记录.

DataGrid dataGrid = new DataGrid();
        dataGrid.PageSize = 5;
        dataGrid.AllowPaging = true;
        dataGrid.EnableViewState = true;
        dataGrid.DataSource = customerDataTable;
        dataGrid.AllowPaging ();
        if (!IsPostBack)
        {
            dataGrid.DataBind();
        }

根据我的代码,它会保留在前5个或网格不显示.

我已经尝试过进出IsPostBack的DataBind().

我也尝试过添加

dataGrid.PageIndexChanged += new DataGridPageChangedEventHandler(dataGrid_PageIndexChanged);

void dataGrid_PageIndexChanged(object source,DataGridPageChangedEventArgs e)
    {
        DataGrid dg = (DataGrid)source;
        dg.DataBind();
    }

但我不能让这个工作.我究竟做错了什么?

谢谢!

解决方法

这是一个例子,我试图重新创建你的场景,它的工作原理.看看这个.

protected void Page_Load(object sender,EventArgs e)
{
        GridView GridView1 = new GridView();
        Panel1.Controls.Add(GridView1);
        GridView1.DataSource = GetList();
        GridView1.AutoGenerateColumns = true;
        GridView1.EnableViewState = true;
        GridView1.AllowPaging = true;
        GridView1.PageSize = 4;
        GridView1.DataBind();
        GridView1.PageIndexChanging += new GridViewPageEventHandler(GridView1_PageIndexChanging);

}

void GridView1_PageIndexChanging(object sender,GridViewPageEventArgs e)
{
    if (sender != null)
    {
        GridView GridView1 = sender as GridView;
        GridView1.PageIndex = e.NewPageIndex;
        GridView1.DataBind();
    }
}



public class Person
{
    public String Name { get; set; }
    public int Age { get; set; }
}
private IEnumerable<Person> GetList()
{
    List<Person> list = new List<Person>();
    list.Add(new Person() {Age = 12,Name = "asdfsd"});
    list.Add(new Person() {Age = 13,Name = "sdfsdaf"});
    list.Add(new Person() {Age = 14,Name = "zxczxv"});
    list.Add(new Person() { Age = 15,Name = "zxczxv" });
    list.Add(new Person() { Age = 16,Name = "zxczxv" });
    list.Add(new Person() { Age = 17,Name = "zxczxv" });
    return list;
}

在标记中,您只需拥有面板即可

<asp:Panel ID="Panel1" runat="server">

编辑:

这是使用DataGrid的相同场景

protected void Page_Load(object sender,EventArgs e)
{
        DataGrid dataGrid = new DataGrid();
        Panel1.Controls.Add(dataGrid);
        dataGrid.DataSource = GetList();
        dataGrid.AutoGenerateColumns = true;
        dataGrid.EnableViewState = true;
        dataGrid.AllowPaging = true;
        dataGrid.PageSize = 4;
        dataGrid.DataBind();
        dataGrid.PageIndexChanged +=new DataGridPageChangedEventHandler(dataGrid_PageIndexChanged);

}

void dataGrid_PageIndexChanged(object source,DataGridPageChangedEventArgs e)
{
    if (source != null)
    {
        DataGrid dataGrid = source as DataGrid;
        dataGrid.CurrentPageIndex = e.NewPageIndex;
        dataGrid.DataBind();
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读