идентификатор gridview в rowdatabound

У меня есть метод rowdatabound, который является общим для двух представлений сетки. Частью задачи этого метода является присвоение значений последнему столбцу сетки.

Представления сетки одинаковы, но значения отличаются от двух представлений сетки. Поэтому мне нужно проверить, назначаю ли я значения первому представлению сетки или другому.

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //Here i need to check which gridview (Gridview1 or Gridview2)
        if (e.Row.RowType == DataControlRowType.DataRow)
        {

            {
                int CellValue = Convert.ToInt32(e.Row.Cells[0].Text);

                if (CellValue == 1)
                    e.Row.Cells[7].Text = "" + patchWeekTwo[0] + "t";
                else if (CellValue == 2)
                    e.Row.Cells[7].Text = "" + patchWeekTwo[1] + "t";
                else if (CellValue == 3)
                    e.Row.Cells[7].Text = "" + patchWeekTwo[2] + "t";
                else if (CellValue == 4)
                    e.Row.Cells[7].Text = "" + patchWeekTwo[3] + "t";
                else
                    e.Row.Cells[7].Text = "" + patchWeekTwo[4] + "t";
            }
        }
     }

person Ruben Ravnå    schedule 02.09.2012    source источник


Ответы (2)


Вы можете проверить, является ли sender GridView1 или GridView2:

if( sender == GridView1 ){}
else{}

Обратите внимание, что это работает только в том случае, если GridView1 объявлен в верхней части страницы, а не в одном из ее дочерних элементов NamingContainers. Затем вы можете проверить идентификатор:

var grid = (GridView)sender;
if( grid.Id == "GridView1" ){}
else{}
person Tim Schmelter    schedule 02.09.2012

Я думаю, это должно сделать это

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
     GridView gv = (GridView)sender;
     if(gv.ID == "gv1")
        //do this
     else
        //do that
}
person codingbiz    schedule 02.09.2012