2009-07-29 7 views
2

ASP.Net에서 DataGrid를 사용하여 정말바로 가기

(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem) 

에 대한 바로 가기 방법이 없습니다 기본적으로 "항목은 머리글, 바닥 글, 구분 기호가 아닌 항목입니다."

하나를 찾을 수 없었지만 StackOverflow에 놓아서 놓치고 있는지 확인했습니다.

답변

4

이에 대한 자신의 확장 메서드를 만들 수 있습니다

using System.Web.UI.WebControls; 

public static class UiControlsHelper 
{ 
    public static bool IsItem(this DataGridItem item) 
    { 
     return item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem; 
    } 
} 

그런 다음이처럼 사용할 수 있습니다

e.Item.IsItem(); 

는 여기에서의 GridView에 대한 동일합니다 :

public static bool IsDataRow(this GridViewRow row) 
{ 
    return row.RowType == DataControlRowType.DataRow; 
} 
+0

이것은 현재 내가 가지고 있으며 지금까지 실행 가능한 것으로 입증되었습니다. 나는 더 간단한 것을 찾고 있었다. – Jared

+0

나는 그보다 더 간단해질 수 있다고 생각하지 않는다. 당신은 e.Item.IsItem()에 물어봐야 만합니다. 전에 당신이 그 긴 비명을 지르는 사람이있는 곳에서 ... – MartinHN

2

지름길은 아니지만이를 함수로 캡슐화하면 코드가 훨씬 더 읽기 쉽습니다.

0

확장 방법을 만들기에 편리한 곳이 될 것입니다. . .

3

Sagianswer을 하나에 추가했습니다. my question s.

당신은 대체 할 수

if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType... 

if (e.Item.DataItem != null) ... 

그의 대답하지 내

와 함께. 나는 그것을 시험하지 않았다. 그건 나도 몰라 :

  • 유효

아주 잘 상황 곳이있을 수 있습니다 .NET 프레임 워크의 향후 버전에서 변경

  • 주제를 지원 문서화 DataItem이 할당되었지만 유효한 항목이 아닙니다. 나는 테스트하고, 위/아래로 투표하고, 의견을 말하기 위해 다른 사람들에게 맡길 것입니다.

  • +0

    이것은 나를 위해 일했습니다. :) - thanks –