2009-04-28 8 views
2

their documentation Telerik은 AllowSorting 속성을 사용하여 특정 열에 대한 정렬을 사용하지 않도록 설정하는 방법이 있다고 말합니다. Telerik.Web.UI.GridColumn members을보고 있는데 AllowSorting 속성이 없습니다. Sortable 속성이 있지만 보호되고 재정의되어야합니다. 그렇다면 특정 열의 정렬을 끄려면 어떻게해야합니까?Telerik RadGrid - 열 정렬을 사용하지 않도록 설정하는 방법?

GridBoundColumn에 AllowSorting 속성이 있지만이 경우 GridTemplateColumn을 사용하고 있습니다. GridTemplateColumn에서 정렬을 해제하는 방법이 있습니까?

답변

4

좋아, 나는 원하는 효과를 얻었고 GridTemplateColumn의 SortingExpression 속성을 공백으로 설정하여 정렬을 해제했습니다.

Grid.Columns.FindByUniqueName("Type").SortExpression = string.Empty; 

이것은 해킹처럼 보입니다. 분류 기능을 끄기위한 명확한 속성이없는 이유는 무엇입니까? 오 잘. 이 작동합니다.

더 좋은 방법을 알고 있다면 알려주세요.

감사합니다.

+1

원본 게시물에서 추가 샘플을 편집했습니다. 여기에서하는 일을 기반으로합니다. 그게 너에게 효과가 있니? – pyrocumulus

+0

예. 기본적으로 우리는 똑같은 일을하고 있습니다. 나는 코드 숨김으로 그것을하고 있으며 당신은 그것을 declaritevely하고있다. –

+0

왜 그들은 단지 AllowSorting을 제공하지 않았는지 알지는 못하지만 적어도 클라이언트 측 바인딩을 위해 해킹이 완전히 분류 동작을 사용할 수 없도록 생각하지는 않습니다. – Sameer

0

다음은 특정 열의 정렬을 비활성화하는 방법을 보여주는 예입니다.

Grid 수준의 AllowSorting 속성 (모든 열에 대해)을 유의하십시오.

그런 다음 Columns 컬렉션에서 해당 특정 열에 대해 해제하는 방법에 유의하십시오.

<telerik:RadGrid ID="RadGrid1" runat="server" AllowSorting="True"> 
    <HeaderContextMenu> 
     <CollapseAnimation Duration="200" Type="OutQuint" /> 
    </HeaderContextMenu> 
    <MasterTableView> 
     <RowIndicatorColumn> 
      <HeaderStyle Width="20px" /> 
     </RowIndicatorColumn> 
     <ExpandCollapseColumn> 
      <HeaderStyle Width="20px" /> 
     </ExpandCollapseColumn> 
     <Columns> 
      <telerik:GridBoundColumn AllowSorting="False" UniqueName="column"> 
      </telerik:GridBoundColumn> 
     </Columns> 
    </MasterTableView> 
    <FilterMenu> 
     <CollapseAnimation Duration="200" Type="OutQuint" /> 
    </FilterMenu> 
</telerik:RadGrid> 

TemplateColumns의 경우 그리드 수준에서 정렬을 해제하고 필요한 열에서 간단하게 활성화하려고합니다. 그렇게하면 기본적으로 비활성화되므로 TemplateColumn에 대해 아무 작업도 수행하지 않아도됩니다.

+0

예,에 AllowSorting 속성이 GridBoundColumn하지만이 경우 GridTemplateColumn을 사용하고 있습니다. GridTemplateColumn에서 정렬을 해제하는 방법이 있습니까? –

+0

그래도 작동하지만 GridTemplateColumn에 대한 정렬 속성을 활성화/비활성화 할 수 없습니다. –

6

AllowSorting 특성은 Visual Studio의 소스/태그보기에서 사용할 수 있습니다. 예 : (간체) :

<tr:RadGrid> 
    <MasterTableView> 
     <Columns> 
      <tr:GridBoundColumn DataField="field" HeaderText="Description" 
       AllowSorting="false" /> 
     </Columns> 
    </MasterTableView> 
    </tr:RadGrid> 

이 방법이 효과가 있을지 모르겠다. 필자는 아직 코드 숨김 파일에서 그리드를 인스턴스화하지 않았으므로 그렇게하는 경우 쉽게 도움을받을 수 없습니다. 하지만 위의 작품은 나를 위해.


편집 :

아 당신은 GridTemplate 열을 사용하고 있던 것을, 원래의 질문에서 명확하지 않았다. 이제 SortExpression 속성을 사용하고 있으므로 마크 업에서 동일한 속성을 사용하지 않습니까? 그래서 :

+0

예, GridBoundColumn에 AllowSorting 속성이 있지만이 경우 GridTemplateColumn을 사용하고 있습니다. GridTemplateColumn에서 정렬을 해제하는 방법이 있습니까? –

+0

이 방법은 다음 코드보다 쉽습니다. – Sameer

0

GridTemplateColumn을 사용하는 경우 링크 버튼 대신 헤더로 레이블이있는 고유 한 headertemplate을 제공 할 수 있습니다. 우리는 여분의 일을 조금하지만 괜찮습니다. 모든 GridTemplateColumns에 대한 정렬을 비활성화하려는 경우 "해킹"이 가장 좋습니다.

3

Telerik에는 이제 머리글 텍스트에 대한 링크 버튼 대신 레이블을 렌더링하기 위해 "없음"으로 설정할 수있는 HeaderButtonType (템플릿 열에도 존재합니다!)이라는 새 속성이 추가되었습니다.Telerik Docs에 명시된 바와 같이

0

: 경우

당신은 당신이 False로 열의 IsSortable 속성을 구성 할 수 있습니다 만 특정 열 정렬 기능을 해제하려면 :

<telerik:GridViewColumn IsSortable="False" /> 
관련 문제