Using the generic type 'System.Collections.Generic.List<T>' requires '1' type arguments

I have used code to merge cells in gridview but it shows error


 Using the generic type 'System.Collections.Generic.List<T>' requires '1' type arguments


so can you help your suggest anything for the same???????
public static List<T> MakeList_tmp<T>(T temp)
        {
            List<T> newList = new List<T>();
            return newList;
        }
 
 
 
        private void mergeRows(GridView gv)
        {
            string lastColumn1 = string.Empty;
            
            GridViewRow currentRow = null;
            GridViewRow tmp = null;
            var temp = tmp;
            var tempRow = MakeList_tmp(temp);
            System.Collections.Generic.List tempRows = new System.Collections.Generic.List();
            
            foreach (GridViewRow row in gv.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow)
                {
                    string currentColumn1 = string.Empty;
                    currentColumn1 = Convert.ToString(row.Cells[0].Text);
 
                    if (currentRow == null)
                    {
 
                        currentRow = row;
                        lastColumn1 = Convert.ToString(row.Cells[0].Text);
 
                    }
 
 
                    else
                    {
                        if (lastColumn1 != currentColumn1)
                        {
 
                            currentRow.Cells[0].RowSpan = tempRows.Count + 1;
                            currentRow.Cells[0].VerticalAlign = VerticalAlign.Middle;
                            currentRow.Cells[0].HorizontalAlign = HorizontalAlign.Center;
 
                            foreach (GridViewRow row1 in tempRows)
 
                                row1.Cells.RemoveAt(1);
                            lastColumn1 = currentColumn1;
 
                            tempRows.Clear();
                            currentRow = row;
                            lastColumn1 = currentColumn1;
                        }
                        else
                        {
 
                            tempRows.Add(row);
                        }
                    }
                }
            }
           
            if (tempRows.Count >= 0)
            {
                
                currentRow.Cells[0].RowSpan = tempRows.Count + 1;
                currentRow.Cells[0].VerticalAlign = VerticalAlign.Middle;
                currentRow.Cells[0].HorizontalAlign = HorizontalAlign.Center;
 
                foreach (GridViewRow row1 in tempRows)
                    row1.Cells.RemoveAt(0);
            }
        }
protected void GridView1_PreRender(object sender, EventArgs e)
        {
            GridView gv1 = (GridView)sender;
            mergeRows(gv1);
 
        }

Open in new window

scsplAsked:
Who is Participating?
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
what about this:
public static List<T> MakeList_tmp<T>()   // if you need and argument, it shall by <T> temp and not T temp, AFAIK
        {
            List<T> newList = new List<T>();
            return newList;
        }
 
and later: 

     private void mergeRows(GridView gv)
        {
            string lastColumn1 = string.Empty;
            
            GridViewRow currentRow = null;
            GridViewRow tmp = null;
            List<GridViewRow> tempRows = MakeList_tmp();
            ...

Open in new window

0
 
scsplAuthor Commented:
So, if here

GridViewRow tmp = null;

List<GridViewRow> tempRows = MakeList_tmp();


i want to pass tmp with MakeList_tmp(tmp) so

how it should be written over here and how the argument will be passed to

the MakeList_temp() <----    function....
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
as I explained in the comment of the previous comment:
public static List<T> MakeList_tmp<T>(<T> tmp)  

Open in new window

0
Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

 
scsplAuthor Commented:
it is not accepting that...

<T> tmp -->  is not a valid argument.....

so is there any other way...
public static List<T> MakeList_tmp<T>(<T> tmp)   
{
    List<T> newList = new List<T>();
    return newList;
}
 
 
 
 
// Above code generates the error:->
 
// Compiler Error Message: CS1031: Type expected

Open in new window

0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
sorry, in the method parameter data type, it's without the <>
public static List<T> MakeList_tmp<T>(T tmp)   
{
    List<T> newList = new List<T>();
    return newList;
}
 

Open in new window

0
 
scsplAuthor Commented:
That matter is solved but tell me one thing

where will  the method  mergeRows() called?

will it be before databinding or after that???
0
 
scsplAuthor Commented:
now i got it it's working thanks a lot for your help


it will be called after binding the data to the data grid

other wise it will show the null reference error.

because it will not have any data into cells without binding..



thank you

again angel
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.