2009-03-17 5 views
0

나는 사인 오프가 있었다면 현재 "1"을 반환하는 열을 가지고있는 gridview가있다. 각 행에 대해 값이 1이거나 0 일 경우 "엄지 손가락을 올린"이미지를 표시하고 싶습니다.어떻게 동적으로 asp.net gridview에서 이미지를 보여?

이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 어떻게 든 rowdatabound 이벤트를 사용하여 생각하고 있었는데, 이것을 수행하는 가장 좋은 방법은 무엇입니까?

감사합니다.

마크.

답변

2

rowdatabound 이벤트는 확실히이 기능을 제공합니다. 그렇게하는 것은 매우 간단하고 직관적입니다. 언급 된 바와 같이 템플릿 열을 사용할 수 있습니다.

protected string ThumbDisplay(int signoff) 
{ 
    return (signoff == 1) ? "~\thumbsup.png" : "~\thumbsdown.png"; 
} 

http://www.asp.net/learn/data-access/tutorial-12-cs.aspx 좋은 있습니다

<Columns> 
    <asp:ImageField HeaderText='Sign Off' 
     DataImageUrlField='<%# ThumbDisplay(Eval("SignOff")) %>' /> 
</Columns> 

그런 다음 당신의 코드 숨김에서 다음과 같은 방법이 필요할 것 : 나는 아마이 관리 템플릿 열, 또는 이미지 필드 중 하나를 사용하십시오 템플릿 열 사용에 대한 세부 정보.

아마도 가장 좋은 방법은 다른 디스플레이 요구 사항에 맞는 방법 일 것입니다. 다른 칼럼에서도 비슷한 마사지가 필요합니까? rowdatabound 이벤트에서 한 번에 모든 작업을 처리하는 것이 좋습니다. 그러나 데이터를 수정하는 유일한 방법 인 경우 템플릿 열 또는 이미지 열을 사용하면 전체 페이지를 깨끗하게 유지하는 것이 가장 쉽습니다.

2

매우 유연한 또 다른 접근법은 템플릿 열을 사용하는 것입니다. 이것은 당신에게 많은 자유를줍니다. 예를 들어, 열의 값을 사용하여 인수를 img 태그로 토글하거나 (또는 ​​두 개의 img 태그 사이를 전환하거나) 링크에 대한 인수를 지정할 수 있습니다.

필자는 항상 템플릿 열을 매우 쉽게 발견했습니다.

1

이 조금 혼란이지만, 모든 템플릿 태그에 포함 된 것 :이 도움이

<ItemTemplate> 
    <img src='<%# (bool)Eval("signoff") ? "thumbsup" : "thumbsdown" %>.gif' alt="whatever" width="16" height="16" /> 
</ItemTemplate> 

희망!

0

감사합니다. 나는 boundfield -> rowdatabound 솔루션을 사용하여 작업을 마무리했습니다.

데이터 이벤트 이벤트 코드가 이미 발생하여 추가되었습니다. 나는 imagebutton 컨트롤을 거기에 놓았으며 지금은 좋아 보인다. (중심에서 약간 벗어나지 만, 이전보다 더 좋아 보인다).

제안 해 주셔서 감사합니다.

Mark.

관련 문제