如何在启用分页时获取所有gridview行?。
它允许仅获取当前的获取行而不是整个gridview行。
答案 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];
}
}