启用分页时如何获取所有gridview的行?
它允许仅获取当前获取行而不是整个 gridview 行。
您可以使用我在我的项目中使用它的下面的命令。它的逻辑非常简单,您浏览所有页面,并且在每个页面中您浏览所有行。您还可以在执行此操作之前获取当前页面,然后在循环所有内容后返回该页面;)
//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);
我们暂时禁用分页并将重新绑定网格,以便现在我们可以访问数据源中的所有记录,而不仅仅是当前页面记录。
一旦 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();
}
使用以下代码并使 GridView 分页禁用
GridView1.AllowPaging = false; GridView1.DataBind();
在页面加载或您想要显示所有 Gridview 行的其他事件上
在从网格获取数据的功能之前只写
yourGridName.AllowPaging=false;
并在获得数据写入后
yourGridName.AllowPaging=true;
如果你的函数是 GetDataFromGrid() 那么你应该像这样
protected void Page_Load(object sender, EventArgs e)
{
yourGridName.AllowPaging=false;
GetDataFromGrid()
yourGridName.AllowPaging=true;
}
启用分页后,您无法显示所有行。但是您可以Allowpaging=false;
在页面加载或某些事件中进行代码隐藏。
protected void Page_Load(object sender, EventArgs e)
{
Gridviewname.AllowPaging=false;
}
或者
Protected Void some event(object sender,Eventargs e)
{
Gridviewname.AllowPaging=false;
}
更好的方法是在页面顶部(gridview 之外)放置一个隐藏字段,然后单击复选框,您应该将相关的 id 或逗号分隔格式的某个值放在隐藏字段中。在提交表单时,您可以使用逗号作为分隔符拆分隐藏字段值字符串,然后就可以了。
使用以下代码获取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];
}
}