•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the ASP.NET section within the Web Development category of DaniWeb, a massive community of 425,993 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 1,670 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our ASP.NET advertiser: Lunarpages ASP Web Hosting
Views: 6602 | Replies: 12
![]() |
Hi all
I have a problem in paging datagrid ..
I have a datagrid and i have template columns in it - is that affect on paging ? , so why paging doesn't work .
i tried the following code after allowing paging to datagrid:
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex = e.NewPageIndex;
DataGrid1.DataBind();
}
does that should code work ?
or could any one give me a successeded code please .
Thanx..
I have a problem in paging datagrid ..
I have a datagrid and i have template columns in it - is that affect on paging ? , so why paging doesn't work .
i tried the following code after allowing paging to datagrid:
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex = e.NewPageIndex;
DataGrid1.DataBind();
}
does that should code work ?
or could any one give me a successeded code please .
Thanx..
Life Is A Big Code
Rushdy Ibrahim
Egypt
Rushdy Ibrahim
Egypt
•
•
Join Date: Mar 2006
Posts: 84
Reputation:
Rep Power: 3
Solved Threads: 1
hey man
if u put a template in the datagrid, that doesn't affect. for the paging to work well u should write the source below.
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) Handles DataGrid1.PageIndexChanged {
DataGrid1.CurrentPageIndex = e.NewPageIndex;
<!-- here u should open connection
execute the query
close the connection
then data binding -->DataGrid1.DataBind();
if u put a template in the datagrid, that doesn't affect. for the paging to work well u should write the source below.
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) Handles DataGrid1.PageIndexChanged {
DataGrid1.CurrentPageIndex = e.NewPageIndex;
<!-- here u should open connection
execute the query
close the connection
then data binding -->DataGrid1.DataBind();
Thank you very much ,
But i did that before ,
The problem is i am using template columns , and change the properties of the controls(in the template columns) by a for loop which change all controls according to the index of the loop. but the compiler fires error when the index exceeds the page size
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
DataGridItem dgi = DataGrid1.Items[i]; // this is the error
LinkButton c_lb=(LinkButton)dgi.FindControl("Client_LB");
c_lb.Text=ds.Tables[0].Rows[i][0].ToString();
}
Exception
Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
But i did that before ,
The problem is i am using template columns , and change the properties of the controls(in the template columns) by a for loop which change all controls according to the index of the loop. but the compiler fires error when the index exceeds the page size
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
DataGridItem dgi = DataGrid1.Items[i]; // this is the error
LinkButton c_lb=(LinkButton)dgi.FindControl("Client_LB");
c_lb.Text=ds.Tables[0].Rows[i][0].ToString();
}
Exception
Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
Life Is A Big Code
Rushdy Ibrahim
Egypt
Rushdy Ibrahim
Egypt
•
•
Join Date: Mar 2006
Posts: 4
Reputation:
Rep Power: 0
Solved Threads: 0
You definitely get this error as the data shown in grid is only 10 records(depending on the count you mentioned) but you are looping through the all the records in dataset.
•
•
•
•
Originally Posted by web developer
Thank you very much ,
But i did that before ,
The problem is i am using template columns , and change the properties of the controls(in the template columns) by a for loop which change all controls according to the index of the loop. but the compiler fires error when the index exceeds the page size
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
DataGridItem dgi = DataGrid1.Items[i]; // this is the error
LinkButton c_lb=(LinkButton)dgi.FindControl("Client_LB");
c_lb.Text=ds.Tables[0].Rows[i][0].ToString();
}
Exception
Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
Thank you very much
i have just tried the ItemDataBound event which set values to items in the bound time , it is really great ..
but also i have a problem in that event that how can i get a text from a cell from the e handler ?
i tried the following code in that event
DataGridItem dgi=e.Item;
SqlDataAdapter ad = new SqlDataAdapter("select Client_Name,Proj_Name,Task_Name,Task_Progress,Task_EndDate,Proj_Color,Task.Task_Id from Task,Client,Project where Task_Owner='"+Session["Uname"].ToString()+"' and Task.Task_Proj_Id=Project.Proj_Id and Project.Proj_Client_Id =Client.Client_Id and Task.Task_Id="+dgi.Cells[0].Text,con);
DataSet ds1= new DataSet();
LinkButton c_lb=(LinkButton)dgi.FindControl("Client_LB");
c_lb.Text=ds1.Tables[0].Rows[0][0].ToString();
but aslo the problem of paging is still exist ..
and i put in the 1st column the field of the task_id in databinding of the datagrid (as a Bound column) where can get the rest of columns data by quering by it .. although it returns an empty value at the first and the last rows of items
if you have a nice code to handle this event , i will be very pleased
Thank you very much
i have just tried the ItemDataBound event which set values to items in the bound time , it is really great ..
but also i have a problem in that event that how can i get a text from a cell from the e handler ?
i tried the following code in that event
DataGridItem dgi=e.Item;
SqlDataAdapter ad = new SqlDataAdapter("select Client_Name,Proj_Name,Task_Name,Task_Progress,Task_EndDate,Proj_Color,Task.Task_Id from Task,Client,Project where Task_Owner='"+Session["Uname"].ToString()+"' and Task.Task_Proj_Id=Project.Proj_Id and Project.Proj_Client_Id =Client.Client_Id and Task.Task_Id="+dgi.Cells[0].Text,con);
DataSet ds1= new DataSet();
LinkButton c_lb=(LinkButton)dgi.FindControl("Client_LB");
c_lb.Text=ds1.Tables[0].Rows[0][0].ToString();
but aslo the problem of paging is still exist ..
and i put in the 1st column the field of the task_id in databinding of the datagrid (as a Bound column) where can get the rest of columns data by quering by it .. although it returns an empty value at the first and the last rows of items
if you have a nice code to handle this event , i will be very pleased
Thank you very much
Life Is A Big Code
Rushdy Ibrahim
Egypt
Rushdy Ibrahim
Egypt
![]() |
•
•
•
•
•
•
•
•
DaniWeb ASP.NET Marketplace
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
Other Threads in the ASP.NET Forum
- Previous Thread: calling session variable
- Next Thread: calling functions


Linear Mode