2014-11-28 2 views
1

내 열에 체크 박스를 적용하려고합니다. 내가 알고 싶은 것은 값에 따라 상자를 선택하거나 선택을 해제하는 방법입니다. 예를 들어 열 값이 '1'인 경우 확인란을 선택하지만 열 값이 '0'또는 'null'인 경우 상자의 선택을 취소해야합니다.JqGrid : 체크 박스 포매터

아래 코드는 내 전체 jqgrid 코드의 일부입니다.

coleModel[{ 
    name: 'MENU1', 
    index: 'MENU1', 
    editable: true, 
    sortable: false, 
    search: false, 
    edittype:'checkbox', 
    editoptions: { value:"1:0"}, 
    formatter: function (cellValue, options, rowObject) { 
     if (cellValue == '1') { 
      return 'Enabled'; 
     }else if(cellValue == '0') { 
      return 'Disabled'; 
     }else{ 
      return cellValue; 
     } 
    } 
}] 

이 열은 목록에서 '사용함'또는 '사용 안함'으로 표시됩니다. 체크 표시를 표시하는 방법을 모르겠습니다. 제게 어떻게하는지 알려주세요. 고맙습니다.

---------------------------------------------------------------------------------------- 

죄송합니다. 나에게 설명하기가 어렵다. 음 .. 너희들은 웹 사이트 "http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing"을 참조 할 수 있니? 'editGridRow'아래의 그림. '닫힌'열은 내가 찾고있는 것입니다. 나는 분명히 설명 할 수 없기 때문에이 분야의 전문가는 아니다. 정말 미안해.

+0

을 사용하면 텍스트' 'Enabled'' 또는''바꾸시겠습니까 장애인 '확인란을 선택하십시오. 표준'포매터 : "체크 박스"를 사용하지 않는 이유는 무엇입니까? – Oleg

+0

@Oleg 왜냐하면 목록에 CRUD를 추가했기 때문에 'Enabled'와 'Disabled'라는 텍스트가 바뀌었기 때문입니다. 그렇지 않으면 생성 또는 업데이트 할 때 열이 확인란으로 표시됩니다. 이러한 텍스트는 그리드 목록에만 표시됩니다. –

+0

죄송하지만, 당신을 이해하지 못합니다. 그리드를 채울 때 셀 내용 (''내용)을 배치하는 ** 포매터 **에 대한 질문을했습니다. 그리드 편집과 관련이 없습니다. 미안 해요,하지만 당신이 원하는 것이 절대적으로 명확하지 않습니다. "생성 또는 업데이트"의 의미는 무엇입니까? "목록"또는 "그리드 목록"에서 무엇을 의미합니까? 그리드의 행입니까? – Oleg

답변

1

잘못된 용어로 기존 용어를 ​​사용하기 때문에 이해하기가 어렵습니다. Formatter는 입력 값을 기반으로 그리드 셀에 데이터를 배치하는 데에만 사용됩니다. 예를 들어 사용자 정의 포맷터을 코드에 사용하면 입력 데이터가 "1"이면 문자열에 "사용 가능"문자열이 배치되고 입력 데이터가 "0"이면 열에 "사용 불가"문자열이 배치됩니다.

의견에 대한 의견의 후반 토론에서 편집 양식에 edittype: 'checkbox'의 사용과 관련하여 문제가 있음을 이해할 수있었습니다.

양식 편집은 열의 값을 기반으로 작성됨을 이해하는 것이 중요합니다. 당신이 열에서 사용자 정의 "사용"으로 배치 된 포맷 또는 "사용 안 함"을 사용하는 경우에 당신은

edittype: "checkbox", editoptions: { value: "Enabled:Disabled" } 

The demo이 솔루션을 보여줍니다 사용할 수 있습니다.

또 다른 단점은 포맷터와 함께 항상 unformatter을 정의하는 것입니다. 예를 들어, 당신은 당신의

unformat: function (cellvalue) { 
    switch (cellvalue) { 
     case "Enabled": 
      return "1"; 
     case "Disabled": 
      return "0"; 
     default: 
      return "0"; 
    } 
}, 
edittype: "checkbox", editoptions: { value: "1:0" } 

The demo 코드를 사용 formatter 코드를 기존과 함께 다음을 사용할 수 있습니다.

더 많은 옵션은 맞춤식 포맷터를 제거하는 것입니다. 입력 데이터를 문자열로 바꾸려면 predefinedformatter: "select"을 사용할 수 있습니다. 미리 정의 된 모든 포맷터는 다음 edittype: "checkbox"value 옵션 "1:0" 될 것입니다, 너무 언 포맷터 정의하므로 경우에 열 의지의 정의는 다음과 같은 속성

formatter: "select", formatoptions: { value: "0:Disabled;1:Enabled" }, 
edittype: "checkbox", editoptions: { value: "1:0", defaultValue: "1" } 

가 포함되어 있습니다.

The demo은 jqGrid의 속성과 모양이 이전 데모와 동일합니다.

개인적으로 논리적으로 하나의 사실을 발견했습니다. 그리드에 "Enabled"또는 "Disabled"를 표시하지만 편집 양식에서 확인란을 사용합니다. 나에게 결과가없는 것 같습니다.그리드에 formatter: "checkbox"을 사용해야하고 체크 박스를 그리드에 배치하거나 edittype: "checkbox" 대신 edittype: "select"을 사용해야합니다. 마지막 경우 사용자는 텍스트 "사용 가능"및 "사용 안함"으로 만 작업합니다. 선택

The corresponding demo 표시 값을 "사용"을 (드롭 다운)와 편집 형태로 "장애인" '

enter image description here

+0

@ 홍옥숙 : 여러분 환영합니다! 다음 번에 더 명확하게 질문을 공식화하십시오. 답을 빨리 얻을 수 있습니다. – Oleg

관련 문제