asp.net 如何在启用分页时获取Gridview的所有内容??

baubqpgj  于 2023-10-21  发布在  .NET
关注(0)|答案(8)|浏览(119)

如何在启用分页时获取网格视图的所有行?.
它只允许获取当前获取的行,而不是整个gridview行。

mtb9vblg

mtb9vblg1#

你可以使用下面的命令,我在我的项目中使用它。它的逻辑是如此简单,你遍历所有页面,在每个页面中,你遍历所有行。你也可以在这样做之前得到你的当前页面,在循环之后你可以回到那里;)

//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);
5w9g7ksd

5w9g7ksd2#

我们暂时禁用分页,并将重新绑定网格,以便现在可以访问网格中的所有记录,而不仅仅是当前页面记录。
一旦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(); 
}
jv2fixgn

jv2fixgn3#

使用以下代码并禁用GridView分页
return false; getView1.DataBind();
页面加载或其他事件中,您希望显示所有的Gridview控件

fdx2calv

fdx2calv4#

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

yourGridName.AllowPaging=false;

在获得数据写入后,

yourGridName.AllowPaging=true;

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

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

v8wbuo2f5#

当分页被启用时,你不能显示所有的行。但是你可以在页面加载或某些事件中的代码隐藏中设置Allowpaging=false;

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

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

zkure5ic6#

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

bis0qfac

bis0qfac7#

使用以下代码获取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];
         }
 }
tzdcorbm

tzdcorbm8#

“内部人”用页面索引提出的解决方案在逻辑上是正确的。但是你不必使用GridView1.SetPageIndex(i);因为它只是设置当前页面的起始行。直接修改GridView1.PageIndex = i;

相关问题