如何启用分页时如何获取Gridview的所有行?

时间:2013-02-15 09:29:54

标签: asp.net

如何在启用分页时获取所有gridview行?。

它允许仅获取当前的获取行而不是整个gridview行。

7 个答案:

答案 0 :(得分:8)

您可以在我的项目中使用我正在使用它的命令。它的逻辑非常简单,您可以浏览所有页面,并在每个页面中浏览所有行。您还可以在执行此操作之前获取当前页面,在循环之后,您可以返回所有页面;)

//Get Current Page Index so You can get back here after commands
                int a = GridView1.PageIndex;
    //Loop through All Pages
                for (int i = 0; i < GridView1.PageCount; i++)
                {
    //Set Page Index
                    GridView1.SetPageIndex(i);
    //After Setting Page Index Loop through its Rows
                    foreach (GridViewRow row in GridView1.Rows)
                    {
                        //Do Your Commands Here
                    }
                }
    //Getting Back to the First State
                GridView1.SetPageIndex(a);

答案 1 :(得分:6)

我们暂时禁用分页,并将重新绑定网格,以便现在我们可以访问数据源中的所有记录,而不仅仅是当前页面记录。

一旦gridview与所有记录绑定,您就可以遍历gridview行。

完成任务后,我们重新启用分页并重新绑定网格。

这是解决问题的方法:

protected void Page_Load(object sender, EventArgs e)
{
    GridView2.AllowPaging = false;
    GridView2.DataBind(); 

    // You can select some checkboxex on gridview over here..

    GridView2.AllowPaging = true;
    GridView2.DataBind(); 
}

答案 2 :(得分:6)

使用以下代码并使GridView分页禁用

GridView1.AllowPaging = false;             GridView1.DataBind();

页面加载或其他一些事件中,您希望显示所有Gridview行

答案 3 :(得分:4)

在从网格获取数据的功能之前,只需编写

yourGridName.AllowPaging=false;

并在获取数据后

yourGridName.AllowPaging=true;

如果您的函数是GetDataFromGrid(),那么您应该像这样

protected void Page_Load(object sender, EventArgs e)
{
yourGridName.AllowPaging=false;
GetDataFromGrid() 
yourGridName.AllowPaging=true;
}

答案 4 :(得分:3)

启用分页时,您无法显示所有行。但是您可以在页面加载或某些情况下在代码隐藏中生成Allowpaging=false;

protected void Page_Load(object sender, EventArgs e)
{
Gridviewname.AllowPaging=false;
}

Protected Void some event(object sender,Eventargs e)
{
Gridviewname.AllowPaging=false;
}

答案 5 :(得分:2)

更好的方法是在页面顶部(gridview之外)放置一个隐藏字段,然后单击复选框,您应该将相关的id或某些值以逗号分隔格式放入隐藏字段中。在提交表单时,您可以使用逗号分隔隐藏字段值字符串作为分隔符,然后就可以了。

答案 6 :(得分:0)

使用以下代码获取e.CommandArgument的值。我一定会解决您的问题!

  protected void GridViewID_RowCommand(object sender, GridViewCommandEventArgs e)
  {
         if (e.CommandName == "GetDetail")
         {
            int index = Convert.ToInt32(e.CommandArgument) % GridViewID.PageSize; // !Important

            GridViewRow row = GridViewID.Rows[index];
         }
 }