0
<asp:ImageButton ID="lnkEmpIdUp" runat="server" ImageUrl="~/Images/upArrow.png" CommandName="EMP_ID_NO" OnClick="lnkSorting_Click" /> 
&nbsp; 
<asp:ImageButton ID="lnkEmpIdDown" runat="server" ImageUrl="~/Images/downArrow.png" CommandName="EMP_ID_NO" OnClick="lnkSorting_Click" /> 

위 코드에서 말한 것처럼 클릭 한 GridView 머리글 템플릿에 2 개의 이미지 단추가 있으며 정렬이 수행됩니다. 닫기보기는 두 컨트롤이 동일한 명령 이름과 동일한 onClick 이벤트를 갖게합니다.격자보기에서 이미지 정렬 버튼 변경

OnClick 이벤트는 명령 이름을 통해 정렬 할 열을 처리하며 정렬 방향은 숨김 필드를 통해 처리됩니다. 아래 코드 참조

protected void lnkSorting_Click(object sender, EventArgs e) 
      { 
       // Initialize variables 
       //Get Dataset values here for the grid. 
       var imgSort = sender as ImageButton; 
       string colName = imgSort.CommandName; 

       if (imgSort.ImageUrl.Trim().ToUpper().Contains(("up").ToUpper())) // If Up(Ascending)arrow is clicked. 
       { 
        if (hdnSortDir.Value.Equals(string.Empty) || hdnSortDir.Value.ToString().Equals("desc")) 
        { 
         hdnSortDir.Value = "asc"; 
         //imgSort.ImageUrl = "~/Images/ascending.gif"; 
        } 
       } 
       else if (imgSort.ImageUrl.Trim().ToUpper().Contains(("down").ToUpper())) 
       { 
        hdnSortDir.Value = "desc"; 
       } 

.....Sorting Logic... 

} 

내 의심 : Gridview에서 정렬을 수행 할 때 런타임에 이미지를 어떻게 변경할 수 있습니까? "종업원 이름"열을 오름차순으로 정렬 한 후 해당 열의 오름차순 이미지가 다른 이미지로 변경되어 사용자가 어떤 열이 정렬 및 방향인지 식별 ​​할 수 있어야합니다.

도와주세요!

감사합니다.

답변

0

숨겨진 필드에 정렬 식 및 정렬 방향 값을 설정하여 rowdatabound에서 동일한 작업을 수행 할 수 있습니다.

0

일반적으로 정렬의 경우 AllowSorting="true"을 설정하면 열 머리글을 클릭하여 정렬 할 수 있습니다. 반복 클릭은 정렬 방향을 토글합니다. 정렬 지시의 경우 ASP.NET 4 이전에는 열 머리글에 정렬 된 방향을 나타내는 이미지를 삽입하는 사용자 지정 코드를 작성해야했습니다. 그러나 ASP.NET 4에서는 SortedAscendingHeaderStyle & SortedDescendingHeaderStyle 속성을 사용하여 일부 스타일이나 CSS 클래스를 헤더에 연결할 수 있습니다. 정렬 된 셀을 스타일 지정하는 속성도 있습니다 (SortedAscendingCellStyle & SortedDescendingCellStyle 참조). 일반적으로 css를 사용하면 열 머리글에 정렬 방향을 표시하는 배경 이미지입니다. 이 기사에

봐 더 나은 접근 방식을 이해하기 :

편집을 : 위에서 말했듯이, ASP.NET 2.0-3.5를 들어, 다음을 수행해야 이러한 정렬 아이콘을 열 머리글로 밀어 넣기위한 사용자 지정 코드를 작성하십시오. 예를 들어 this article을 참조하십시오. 동일한 내용을 확장 한 격자보기 또는 this을 참조하십시오. RowDataBound 이벤트는 열 머리글에 CSS 클래스를 적용하는 데 사용됩니다 (클래스는 배경 정렬 이미지를 설정합니다). 또는 RowCreated 이벤트를 사용하는 this을 참조하십시오. 실제로 머리글 셀에 이미지 컨트롤을 추가하십시오. 몇 가지 대안이 있지만 유사한 변형이 가능합니다. 개인적으로 CSS 클래스를 적용하는 두 번째 방법을 선호합니다.

+0

입력 해 주셔서 감사합니다.하지만 asp.net 3.5 –

+0

@ xor power를 사용하고 있습니다. 답변에서 편집을 참조하십시오. – VinayC