나는 깊은 트리가 있으며 사용자는 레벨을 구분하기가 어렵습니다. 각 레벨에 맞춤형 CSS 클래스를 사용할 수 있습니까? 예를 들어 첫 번째 h1과 굵게, 두 번째 굵게 ...jqgrid treegrid 각 트리 수준에 대한 사용자 정의 CSS 클래스
답변
나는 흥미로운 질문을 발견하지만 나무 노드에 대해 개별 아이콘을 더 잘 사용할 수 있다고 생각한다. 행마다 CSS 스타일을 설정해야한다면 the answer 및 this one으로 전달할 수 있습니다. 숨겨진 level
열의 내용을 테스트하기 위해 데모에서 테스트 기준을 변경하기 만하면됩니다.
그래서 나는 the demo이있는 당신은 노드 레벨 당 개별 아이콘을 설정하는 방법을 보여줍니다 생성 :
모든
우선은 TreeGrid에가 잎에 대한 개별 아이콘을 지원하는지, 언급해야한다 아웃 - 오브 - 박스 . 게시 된 데이터에 icon
속성을 추가하기 만하면됩니다. 속성의 값은 아이콘을 나타내는 div
에 추가되는 CSS 클래스 여야합니다. 예 : icon: "ui-icon-star"
. 아이콘의 표준 클래스는 "ui-icon-radio-off"입니다. 또한 div는 "ui-icon tree-leaf treeclick"클래스를받습니다. 따라서 표준 아이콘 인 jQuery UI icons에서 필요한 아이콘을 찾으면 잎 아이콘이 매우 쉽게 변경됩니다.
리프가 아닌 트리 노드에는 두 개의 아이콘이 있습니다. 하나는 접힌 양식이고 다른 하나는 확장 양식입니다. jqGrid 구성에 따라 아이콘을 변경하는 간단한 방법은 없지만 loadComplete
내부에 추가 JavaScript 코드를 작성하고 과 같이 expandNode
및 collapseNode
메서드의 체인 (덮어 쓰기 또는 서브 클래스)과 관련하여 요구 사항을 구현할 수 있습니다.
데모에서는 방금 최상위 트리 노드의 아이콘을 변경했습니다. 같은 방법으로 다른 레벨의 아이콘도 바꿀 수 있습니다. 당신이 내 데모에서 코드의 가장 중요한 부분을 찾을 아래 :
var $grid = $("#treegrid"),
orgExpandNode = $.fn.jqGrid.expandNode,
orgCollapseNode = $.fn.jqGrid.collapseNode;
$grid.jqGrid({
....
loadComplete: function (data) {
var item, i, l = data.length || 0;
for (i = 0; i < l; i++) {
item = data[i];
if (!item.isLeaf && (item.level === "0" || item.level === 0)) {
if (item.expanded) {
$("#" + item.id + " div.treeclick")
.removeClass("ui-icon-triangle-1-s")
.addClass("ui-icon-carat-1-s");
} else {
$("#" + item.id + " div.treeclick")
.removeClass("ui-icon-triangle-1-e")
.addClass("ui-icon-carat-1-e");
}
}
}
}
});
$.jgrid.extend({
expandNode: function (rc) {
var ret = orgExpandNode.call(this, rc);
if (!rc.isLeaf && (rc.level === "0" || rc.level === 0)) {
$("#" + rc._id_ + " div.treeclick")
.removeClass("ui-icon-triangle-1-s ui-icon-carat-1-e")
.addClass("ui-icon-carat-1-s");
}
return ret;
},
collapseNode: function (rc) {
var ret = orgCollapseNode.call(this, rc);
if (!rc.isLeaf && (rc.level === "0" || rc.level === 0)) {
$("#" + rc._id_ + " div.treeclick")
.removeClass("ui-icon-triangle-1-e ui-icon-carat-1-s")
.addClass("ui-icon-carat-1-e");
}
return ret;
}
});
이 업데이트 : 나는 나무 아이콘의 문제에 대해 좀 더 생각 the new demo에 코드를 수정했습니다.
리프 노드와 똑같은 트리 노드의 아이콘을 정의하는 것이 더 실용적 일 것이라고 결정했습니다. 하나는 두 개의 아이콘을 지정해야하기 때문에 접힌 아이콘과 확장 된 아이콘을 쉼표로 구분할 수 있습니다. 예 : icon: "ui-icon-carat-1-e,ui-icon-carat-1-s"
.
var $grid = $("#treegrid"),
orgExpandNode = $.fn.jqGrid.expandNode,
orgCollapseNode = $.fn.jqGrid.collapseNode,
changeTreeNodeIcon = function (item) {
var icons, $div, id;
if (!item.isLeaf && typeof item.icon === "string") {
icons = item.icon.split(',');
if (icons.length === 2) {
id = item[this.p.localReader.id] || item[this.p.jsonReader.id];
$div = $("#" + $.jgrid.jqID(id) + " div.treeclick");
if (item.expanded) {
$div.removeClass(icons[0])
.removeClass("ui-icon-triangle-1-s")
.addClass(icons[1]);
} else {
$div.removeClass(icons[1])
.removeClass("ui-icon-triangle-1-e")
.addClass(icons[0]);
}
}
}
};
$grid.jqGrid({
....
loadComplete: function (data) {
var item, i, l = data.length || 0;
for (i = 0; i < l; i++) {
item = data[i];
changeTreeNodeIcon.call(this, item);
}
}
});
$.jgrid.extend({
expandNode: function (rc) {
var ret = orgExpandNode.call(this, rc);
changeTreeNodeIcon.call(this[0], rc);
return ret;
},
collapseNode: function (rc) {
var ret = orgCollapseNode.call(this, rc);
changeTreeNodeIcon.call(this[0], rc);
return ret;
}
});
이 업데이트 : 코드는 다음에 다시 할 수 있습니다 나는 the feature request와 TreeGrid에에 기능 위에서 설명한 추가 할 the pull request을 기록했다.
- 1. JqGrid 및 사용자 정의 클래스
- 2. Extjs 맞춤 TreeGrid 행 CSS
- 3. jqGrid TreeGrid 문제
- 4. jqgrid - 사용자 정의 정렬로 변경
- 5. jqgrid 파일에 대한 편집 유형 사용자 정의
- 6. 사용자 정의 셀 색상의 jqGrid
- 7. 사용자 정의 열이있는 jqgrid
- 8. jqGrid edittype select css 클래스
- 9. Jqgrid 트리 그리드 성능
- 10. jqgrid treegrid json 데이터에 대한 주문시 아이디 (확장시)를로드하도록 설정합니다.
- 11. 각 qTip 툴팁에 대한 사용자 정의 컨텐츠
- 12. Web2py : 사용자 정의 양식의 사용자 정의 CSS 클래스
- 13. jqGrid treeGrid Expand Collapse not working
- 14. LDAP의 사용자 정의 트리
- 15. 각 NSUserNotification에 대한 사용자 정의 아이콘?
- 16. 각 저장소에 대한 gitk 사용자 정의
- 17. 클래스 수준에 조건부 특성이 있습니까?
- 18. jqGrid - 모달 팝업 사용자 정의
- 19. jqgrid 사용자 정의 행 색상
- 20. Jqgrid 사용자 정의 삭제 메시지
- 21. jqgrid 중복으로 사용자 정의 정렬
- 22. 사용자 정의 컨트롤에서 CSS 참조하기
- 23. jqgrid 다른 열의 로컬 데이터에 대한 사용자 정의 정렬
- 24. ExtJs의 ComboBox에서 selectedItem에 대한 CSS 사용자 정의
- 25. jqgrid jquery 대화 상자의 오류에 대한 새 CSS 클래스를 설정하십시오.
- 26. Magento 제품 트리 사용자 정의
- 27. JqGrid - 모달 창의 사용자 정의 테마
- 28. DHTMLX 대 EJS Treegrid 대 ExtJS Treegrid
- 29. 클래스의 사용자 정의 CSS
- 30. jqGrid - 그룹화 + 사용자 정의 요약 함수
올렉. 아주 좋은 대답! – degressor
@ gleb : 천만에요! 트리 그리드의 가로 스크롤에 문제가있는 경우 [다른 답변] (http://stackoverflow.com/a/6509495/315935)을 통해 상황을 개선하는 방법에 대한 아이디어를 얻을 수 있습니다. – Oleg
@gleb : 방금 [기능 요청] (http://www.trirand.com/blog/?page_id=393/feature-request/extend-treegrid-functionality-to-support-icons-assinged-per) 게시했습니다. -node/# p26211)와 [pull request] (https://github.com/tonytomov/jqGrid/pull/277)를 사용하여 위에서 설명한 기능을 TreeGrid에 추가합니다. – Oleg