2017-01-03 1 views
0

데이터베이스 테이블의 도구 모음에있는 드롭 다운 메뉴에 대한 옵션을 작성합니다. 옵션에 대한 ID는 테이블의 색인과 동일한 값을 갖지만 알파벳 순으로 정렬됩니다 옵션에 대한 설명으로 시각적 인 드롭 다운이 멋지게 나옵니다. 그러나 모든 옵션의 목록을 요청할 때 get, getAllListOptions() 및 forEachListOption()과 같은 ID별로 정렬됩니다. 목록을 다시 정렬하는 것 외에 목록의 첫 번째 옵션을 선택하기 위해 "올바른"순서로 옵션 목록을 조회하는 방법이 있습니까?도구 모음 목록 옵션이 표시된 순서대로 가져 오기

강조하기 위해, 옵션은 설명별로 옵션을 정렬 할 때 ID가 오름차순이 아니지만 dhtmlx는 내부적으로 오름차순으로 값순으로 정렬합니다. I.E, ID가 8 인 옵션이 목록의 맨 위에 나오면 내부 목록의 첫 번째 옵션은 가장 작은 ID (내 경우 2)가 아닌 "8"이어야합니다.

웹 사이트는 MVC이고 백엔드는 MS SQL Server이며 옵션 목록과 같은 데이터 구조는 XML로 면도기 스크립트를 통해 전달됩니다.

I.E. 옵션리스트를 얻기위한 ajax 호출은 bussiness 레이어를 통해 설명에 따라 정렬 된 객체 목록을 요청하는 DAL에 전달됩니다.

public List<Analysis> GetConfig() 
    { 
     return UnitOfWork.Database.Fetch<Analysis>("SELECT * FROM [Analysis] ORDER BY [Description]"); 
    } 

답변

1

에서보기 모델)

사용이 dhtmlx 도구 모음을 사용하여 원하는대로 할 수있는 솔루션을 만들었습니다. 외관상으로는 시각적 옵션을 드러내는 함수가 없으므로 접근 할 수있는 유일한 방법은 객체의 속성을 이용하는 것입니다. 경우 다른 사람에

같은 문제로 실행, 여기에 내가 무슨 짓을 : 내가있는 OrderBy ID, 목록에서 볼 수 옵션이 더 이상 ID하지 설명으로 분류하는 경우

//Get all visible options 
var asList = this.objPull[this.idPrefix + "tbb" + sChart].p_tbody.childNodes; 
//If options exist for Chart set drop-down to first option in list 
if (asList.length > 0) { 
    this.setListOptionSelected("tbb" + sChart, asList[0].idd); 
    this.setItemText("tbb" + sChart,"<strong>{0}</strong>".format(this.GetSelectedItemText("tbb" + sChart))); 
} 
0

합시다 데이터베이스 정렬 목록, 예를 들면 : 면도기 스크립트는이

<item id="tbbOptions" type="buttonSelect" title="@(Messages.Lookup("Config"))" selected="-1" text="@Messages.Lookup("Config_Select")"> 
    @foreach (Analysis oAnalysis in Model.Analysis) 
    { 
     if (!string.IsNullOrEmpty(oAnalysis.SecondaryField)) 
     { 
      <item type="button" id="@(oAnalysis.ID)" img="blueprint.png" imgdis="blueprint.png" text="@string.Format("{0}", oAnalysis.Description)" /> 
     } 
     else 
     { 
      <item type="button" id="@(oAnalysis.ID)" img="blueprint.png" imgdis="blueprint.png" text="@string.Format("{0}", oAnalysis.Description)" /> 
     } 
    } 
</item> 

SQL 쿼리와 같은 XML을 생성 MongoDB를위한 find().sort() :

https://docs.mongodb.com/getting-started/shell/query/#sort-query-results

DB 당신이 사용하고 있습니까?

+0

추가 더 많은 정보가 – aggaton

0
LINQ있는 OrderBy 또는 SortBy이 문제를 해결할 수

;의 자바 스크립트 소스 코드를 수색 한 후 액션 메소드 또는 권장되지보기()

Model.Analysis.OrderBy(x=>x.ID) 
+0

질문하기 . 사실, 그것은 툴바 객체의 내부 _listOptions리스트와 동일한 가시적 인 옵션리스트를 만들지 만,리스트 옵션을 알파벳 순으로 정렬해야한다는 요구 사항을 깨뜨린다. 내 문제는 내부 목록이 생성되는 방식에 있다고 생각합니다. 객체는 뷰 또는 뷰 모델에서 만들어진 순서가 아니라 숫자 ID로 "해시됩니다". – aggaton

+0

좋아, 당신은 알파벳순으로 설명을 \ 이름이나 등, 바로 목록을 정렬해야합니까? 필요한 필드별로 주문하십시오. 아니면 당신 문제를 이해하지 못했습니까? – blckt

+0

옵션은 이미 데이터베이스에서 사전 순으로 정렬되어 있습니다. 문제는 dhtmlx가 내부적으로 ID 별 옵션을 주문합니다. 즉, getAllListOptions()를 호출하면 목록의 첫 번째 옵션이 드롭 다운의 첫 번째 표시 옵션이 아니라 가장 낮은 신분증. 내부 및 시각적 표현간에 불일치가 있습니다. – aggaton

관련 문제