2014-05-13 4 views
1

이벤트 rowdatabound 내부의 gridview에있는 총 열 수를 찾아야합니다. 어떤 방법 으로든 사용할 수 있습니다. 다음은 내 몇 가지 코드 :rowdatabound를 사용하는 열의 수입니다.

protected void gvEmployee_RowDataBound(object sender, GridViewRowEventArgs e) 
     { 
      LinkButton lnkView = new LinkButton(); 
      lnkView.ID = "lnkView"; 
      lnkView.Text = "View"; 
      lnkView.Click += ViewDetails; 
      e.Row.Cells[3].Controls.Add(lnkView); 
     } 
+0

'gvEmployee.Columns.Count'를 사용하지 않는 이유는 확실하지 않습니다. 왜 데이터 바인딩중인 행에 대한 이벤트 처리기 내에서 필요한지에 대한 자세한 정보를 제공 할 수 있습니까? –

+0

@Sven Grosen : 저는 gridview를 동적으로 만들었고 e.Row.Cells [3] .Controls.Add (lnkView)를 대체하려고했습니다. , 셀 [3]보다 구체적인 코드. – Maes

답변

3

당신을 보낸 사람을 GridView으로 캐스팅하고 개수를 확인할 수 있습니다.

protected void gvEmployee_RowDataBound(object sender, GridViewRowEventArgs e) 
{  
    if(!(sender is GridView)) 
     return; 

    GridView gridView = (GridView) sender; 
    var colCount = gridView.Columns.Count; 

    //Your code 
} 
+0

고마워.이게 나를 위해 일하고있어. – Maes

2

확실하지 당신이 원하는,하지만 Cells 그렇게 열의 총 수를 얻기 위해,이 행의 세포의 배열입니다 이유 :

protected void gvEmployee_RowDataBound(object sender, GridViewRowEventArgs e) 
    {    
     var colCount = e.Row.Cells.Count; 
    } 
+0

나는 gridview를 동적으로 만들었고 e.Row.Cells [3] .Controls.Add (lnkView)를 대체하려고했습니다. , 셀 [3]보다 구체적인 코드. – Maes

+0

.Length에 대한 오류가 발생합니다. 너 왜 나 한테 전화 좀 해줄 래? – Maes

+0

'Length'가 아닌'Count'이어야합니다. –

관련 문제