gridview分页问题 [英] gridview paging problem

查看:97
本文介绍了gridview分页问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



这是我网页中的gridview代码

Hi,
thins is gridview code in my webPage

<asp:GridView ID="GridView1" runat="server" BorderStyle="None" OnPageIndexChanging="GridView1_PageIndexChanging" AllowPaging="True">
           
            <Columns>
                <asp:TemplateField HeaderText="Select">
                    <ItemTemplate>
                        <asp:CheckBox ID="IdSelector" runat="server" OnCheckedChanged="Button1_Click"/>
                    </ItemTemplate>
                </asp:TemplateField>
               <asp:HyperLinkField DataTextField="title" DataNavigateUrlFields="SubjectId" DataNavigateUrlFormatString="~/Topic/{0}" HeaderText="العنوان"/>
           </Columns>
            
        </asp:GridView>







protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        if (Page.RouteData.Values["Id"] != null /*&& Page.RouteData.Values["index"] != null*/)
        {
            int id;
            if (int.TryParse(Page.RouteData.Values["Id"].ToString(), out id) == true /*&& int.TryParse(Page.RouteData.Values["index"].ToString(), out index) == true*/)
            {
                Adapter = new SqlDataAdapter("SELECT Subjects.SubjectId,Subjects.Title,AgePeriods.Period,Users.UserName From Subjects INNER JOIN AgePeriods ON Subjects.AgeId = AgePeriods.AgePeriodId INNER JOIN Users ON Subjects.UserId = Users.UserId WHERE CId = '" + id + "' ORDER BY Subjects.SubjectId DESC ", con);
                Adapter.Fill(ds, "Subjects");
                GridView1.DataSource = ds.Tables["Subjects"];
                GridView1.DataBind();
                for (int i = 0; i < GridView1.Rows.Count; i++)
                {
                    GridView1.Rows[i].Cells[1].Visible = false;
                    GridView1.Rows[i].Cells[2].Visible = false;
                }
            }
            else
            {
                Response.Redirect("homepage.aspx");
            }

        }

    }

}







protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {        
        int newPage = e.NewPageIndex;
        GridView1.DataSource = ds.Tables["Subjects"];
        GridView1.DataBind();
    }



分页已启用,但问题是当我将绑定代码添加到!回发块

分页不起作用时,分页或使用!回发,我使用!postBack能够获得选中的复选框。是否有可能使用分页& amp; !postBack?

提前感谢


paging is enabled, but the problem that when i add binding code into !postback block
paging does not work, either paging or using !postback, i use !postBack to be able to get selected checked checkboxes. Is there possible way to use paging & !postBack ?
thanks in advance

推荐答案

好的,试试:



Ok, try:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            if (Page.RouteData.Values["Id"] != null /*&& Page.RouteData.Values["index"] != null*/)
            {
                int id;
                if (int.TryParse(Page.RouteData.Values["Id"].ToString(), out id) == true /*&& int.TryParse(Page.RouteData.Values["index"].ToString(), out index) == true*/)
                {
                    Adapter = new SqlDataAdapter("SELECT Subjects.SubjectId,Subjects.Title,AgePeriods.Period,Users.UserName From Subjects INNER JOIN AgePeriods ON Subjects.AgeId = AgePeriods.AgePeriodId INNER JOIN Users ON Subjects.UserId = Users.UserId WHERE CId = '" + id + "' ORDER BY Subjects.SubjectId DESC ", con);
                    Adapter.Fill(ds, "Subjects");
                    GridView1.DataSource = ds.Tables["Subjects"];
                    GridView1.DataBind();

                    // add data to session to persist data
                    Session["SubjectsData"] = ds.Tables["Subjects"];

                    for (int i = 0; i < GridView1.Rows.Count; i++)
                    {
                        GridView1.Rows[i].Cells[1].Visible = false;
                        GridView1.Rows[i].Cells[2].Visible = false;
                    }
                }
                else
                {
                    Response.Redirect("homepage.aspx");
                }
 
            }
 
        }
        
    }







然后在页面索引更改方法中:






And then in the page index changing method:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {       
           // set your page index on the grid. you were missing this. The grid did not know which page to navigate to. 
           GridView1.PageIndex = e.NewPageIndex;

           // get your data back out of session.
           GridView1.DataSource = Session["SubjectsData"];
           GridView1.DataBind();
    }


这篇关于gridview分页问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆