DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   ASP.NET (http://www.daniweb.com/forums/forum18.html)
-   -   Paging in dataGrid (http://www.daniweb.com/forums/thread41228.html)

web developer Mar 16th, 2006 10:18 am
Paging in dataGrid
 
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..

raghunath.kunta Mar 17th, 2006 2:28 am
Re: Paging in dataGrid
 
Can you please tell us what is exactly happening when you run this code.

web_developer Mar 19th, 2006 5:58 am
Re: Paging in dataGrid
 
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();

web developer Mar 19th, 2006 10:11 am
Re: Paging in dataGrid
 
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

web_developer Mar 19th, 2006 11:09 am
Re: Paging in dataGrid
 
i dont know man
i didnt face this problem
i used as i told u and didnt face this problem
sorry

raghunath.kunta Mar 20th, 2006 12:33 am
Re: Paging in dataGrid
 
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.

Quote:

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


web developer Mar 20th, 2006 11:29 am
Re: Paging in dataGrid
 
Thanx very much
I know that this is the problem
and how can i change all the controls data without a loop throw all rows
i ask you , if u have another solution plz .
i have 3 days trying it ,i spent more and more time.
Thanx again
waitting any response.
bye

raghunath.kunta Mar 21st, 2006 12:03 am
Re: Paging in dataGrid
 
There are some grid events like ItemBound where you can set controls values. If you can tell me when exactly(On which event) and which record you want to display in controls it will be great.

web developer Mar 21st, 2006 5:44 am
Re: Paging in dataGrid
 
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

web developer Mar 21st, 2006 6:35 am
Re: Paging in dataGrid
 
Ok
Thanx very much
the event just worked and the problem is solved ..
i used try and catch to handle the exception .. and all is right now .
Thanx very much
and Thanx for all who help me
Bye

:p :p :p :p


All times are GMT -4. The time now is 12:44 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC