0

내 gridview에서 바닥 글에 새 레코드를 삽입하기위한 필드가 있습니다.grid.prerender에서 내 익명의 함수가 실행되지 않는 이유는 무엇입니까?

내 objectdatasource에서 레코드가 돌아 오지 않을 경우 이벤트를 선택하면 단일 모의 행을 바인딩하여 바닥 글이 강제로 표시되어 레코드를 추가 할 수 있습니다. 행에 실제 데이터가 포함되어 있지 않으므로 행을 숨 깁니다.

... 
    If result.ItemCount = 0 Then 
     result = mockRow 
     AddHandler mygridview.PreRender, AddressOf HideRow 
    End If 
End Sub 

Private Sub HideRow(ByVal sender as Object, ByVal e as EventArgs) 
    mygridview.Rows(0).Visible = False 
End Sub 

이 작동합니다. 그러나, 나는 이런 식으로 응축 싶습니다이 잘 컴파일하지만

... 
    If result.ItemCount = 0 Then 
     result = mockRow 
     AddHandler mygridview.PreRender, Function() mygridview.Rows(0).Visible = False 
    End If 
End Sub 

행이 숨겨진하지 않습니다. 아무도 내 익명의 기능이 작동하지 않는 이유를 말해 줄 수 있습니까?

+0

목록보기 컨트롤 사용을 고려하십시오. 삽입 열을 렌더링합니다. http://msdn.microsoft.com/en-us/library/bb515103.aspx 그림을 보려면 아래로 스크롤하십시오. –

답변

2

문제는 값을 할당하는 대신 부울을 반환하는 함수를 만드는 것입니다. VB 2008을 사용하고 계시다면 막혔지만 VB 2010에서는 하위를 대신 할 수 있습니다.

AddHandler mygridview.PreRender, Sub() mygridview.Rows(0).Visible = False 
0

매개 변수를 추가하지 않아도됩니까?

AddHandler mygridview.PreRender, _ 
    Function(sender as Object, e as EventArgs) mygridview.Rows(0).Visible = False 
+0

그것들을 추론 할 수 있어야합니다. 나는 그것을 두 가지 방법으로 시도했다. 아직도 작동하지 않았다. – adam0101

0

이 당신이 필요로하는 무엇을 :

AddHandler mygridview.PreRender, Sub(sender as Object, e as EventArgs) mygridview.Rows(0).Visible = False 

그래서, 당신은 모두 반 옳았다.

관련 문제