2011-10-27 2 views
0

내가이 쿼리를 SQL로하는 경우 사용 :Linq에의 문이

Dim Query = From E In db.Employee Select E 

이제 "이 isActive"라는 부울 필드가 Employee 테이블 내부.

이 isActive 값은 내가이 isActive가 "활성"및이 isActive에 동일한 동일 것을 보여주기 위해 결과를 원하는 True로 동일한 경우 = A의 gridview "

+0

분명히 질문을 놓쳤습니다. 귀하의 의견은 "IsActive 값이 True이면 IsActive가"Active "와 같고 IsActive = false 일 때 Gridview에 바인딩 할 때 InActive를 표시하기를 원하는 결과입니다." 이 정보를 질문에 추가하여 명확하게 할 수 있습니까? – ChrisF

답변

1

내가 제대로 질문을 이해하는 경우에 바인딩 할 때 비활성 보여 거짓 , 당신은이 isActive 열에서 "활성"또는 "비활성"당신의 gridview에서가 아니라 "true"또는 "false"를 표시하려면?

그렇다면, 내가 두 개의 서로 다른 접근 방식을 볼 수 있습니다.

변형을 1 :

새 익명 형식을 선택할 수하고있는 gridview에 바인딩 (용서, 나는 VB 구문을 모르는 그러나 이것은이 C#으로 수행 될 방법입니다) :

Dim Query = From E In db.Employee Select New With _ 
{ _ 
    .Id = E.Id, _ 
    .Name = E.Name, _ 
    .IsActive = E.IsActive ? "Active" : "Inactive" _ 
    ' ... all employee fields except IsActive, ' 
} 

을 그리고 방금 데이터 바인딩 평소처럼

변형 2 :

당신은 gridview에 그냥이 isActive 속성에 바인딩보다 조금 더 똑똑 할 수 있습니다. 즉, gridview는 IsActive ? "Active" : "Inactive" 부분을 수행합니다. 대신 템플릿 필드로 변경할 수 있습니다

<asp:BoundField DataField="IsActive" HeaderText="IsActive" /> 

: 예를 들어

, 당신은 아마 이런 걸 가지고에서

<asp:TemplateField HeaderText="IsActive"> 
    <ItemTemplate> 
     <%# GetIsActiveText((bool)Eval("IsActive")) %> 
    </ItemTemplate> 
</asp:TemplateField> 

코드 숨김 파일, 당신은 방법 GetIsActiveText를 추가 부울 true/false 값을 기반으로 올바른 문자열을 반환합니다.

1

나는 당신이 달성하려는 것을 이해한다고 생각합니다.

Dim Query = From e In db.Employee 
     select 
     new 
     { 
     ID = e.ID, 
     ActiveStr = e.IsActive?"Active":"Inactive" 
     }; 

쉼표로 구분 된 쿼리에 표시 할 수있는 다른 어떤 분야로 "ID"필드를 교체하십시오 : 당신이 뭔가를해야합니다.

1
ActiveStr = e.IsActive?"Active":"Inactive" 
0

모든 사람은이 상태를 권장하지 않습니까? trueBit : falseBit 구문은 C# 전용입니다. VB의 경우, IIER이 아닌 Ternary If를 사용하십시오.

Dim query = From e In db.Employee 
      Select e.ID, 
        ActiveStr = If(e.IsActive,"Active","Inactive")