2017-03-08 3 views
0

Json 객체를 일반 HTML 테이블로 변환하기 위해 jqGrid를 사용하고 있습니다. 서버에서 나는 객체를 얻고 모든 것이 한 가지를 제외하고 좋다. 나는 실제로 하나의 열을 추가했습니다. 각 체크 박스 입력의 값 속성에 체크 상자가 선택되어 있으면 나중에 서버로 다시 전달하는 ID를 입력했습니다. jqGrid는 체크 박스 열을 무작위로 선택합니다.

$("#membersGrid").jqGrid({ 
    url: '/Member/GetAllMembers', 
    mtype: "GET", 
    styleUI: 'Bootstrap', 
    datatype: "json", 
    colModel: [ 
     { label: 'Full Name', name: 'fullName', width: 150 }, 
     { 
      label: 'Select', editable: true, name: 'id', 
      edittype: 'checkbox', editoptions: { value: "true:false", defaultValue: "false" }, 
      formatter: "checkbox", formatoptions: { disabled: false }, width: 45 
     } 
    ], 
    viewrecords: true, 
    height: 250, 
    width: 640, 
    rowNum: -1, 
    ajaxSubgridOptions: { async: false }, 
}); 

내가 참 또는 거짓 정의하고 내가 (체크)가 false는 각각의 기본 가치와 체크 박스에 생성 된 모든 세포임을 명시하고 싶었 DEFAULTVALUE로하고 값을 체크 박스의 열을 생성.

하지만 그 대신 내가 얻고 무작위로 선택 체크 박스 :

enter image description here

내가 크롬에서 요소를 검사 할 때, 선택하지 않은 유형은 이러한 방법으로 생성 된 자동입니다 :

<td role="gridcell" style="" title="" aria-describedby="membersGrid_id"> 
    <input type="checkbox" value="400" offval="no"> 
</td> 

가 그리고 유형 검사 이렇게 :

<td role="gridcell" style="" title="" aria-describedby="membersGrid_id"> 
    <input type="checkbox" checked="checked" value="399" offval="no"> 
</td> 

어떤 다른 방법 jqGrid를 defaultValue 속성을 사용하여 그 확인란을 선택하지 않도록 말합니까? 아니면 내가 잘못하고있는거야?

+0

상용 [Guriddo jqGrid JS] (http://guriddo.net/?page_id=103334)를 사용하는 것 같습니다. 나는 당신을 도울 수 없지만 내가 개발 한 [free jqGrid] (https://github.com/free-jqgrid/jqGrid) 포크로 시도해 볼 것을 권한다. 'styleUI : 'Bootstrap'매개 변수를'guiStyle : "bootstrap"(또는'guiStyle : "bootstrapPrimary"')로 변경해야합니다 ([article] (https://free-jqgrid.github.io/getting) 참조). -started/index.html # bootstrap)) jqGrid 파일을 CDN URL로로드하는 데 사용되는 URL을 수정하려면 ([wiki article] (https://github.com/free-jqgrid/jqGrid/wiki/Access- free-jqGrid-from-different-CDNs)) – Oleg

+0

무료 jqGrid 4.14.0에 같은 문제가있는 경우 서버 (' '/ Member/GetAllMembers' ')에서 반환 된 테스트 JSON 데이터가 필요합니다. 문제. – Oleg

+0

@Oleg 응답 해 주셔서 감사합니다. 흥미로운 사실 ​​하나를 발견했습니다.기본적으로 checkbox의 value 속성을 정의하는 name : 'id'속성을 제거하면 모든 체크 박스가 선택 해제됩니다. 내가 돌려 주면 무작위로 다시 확인했다. 체크 박스를 체크하면 이름 속성이 어떻게 영향을 미치는지 모르겠습니다 ... –

답변

1

formatter: "checkbox"의 사용에 관한 오해가 있다고 생각합니다. 입력란 값 true 또는 false을 확인란의 선택/선택 취소 상태로 표시합니다. 입력 데이터의 id 속성은 rowid으로 사용됩니다. 행의 속성 값은 id입니다 (<tr> 그리드 요소).

따라서 name 또는 확인란을 유지할 열을 변경하는 것이 좋습니다. 귀하의 주요 문제는 그 과정에서 수정되어야합니다.

formatter: "checkbox", formatoptions: { disabled: false }의 사용에주의하시기 바랍니다. jqGrid는 편집 모드 세 가지 편집 모드를 지원합니다. jqGrid의 로컬 데이터를 수정할 수있는 셀 편집, 인라인 편집 및 양식 편집. 또한 현재 loadonce: true 옵션을 사용하지 마십시오. 따라서 로컬 데이터가 전혀 작성되지 않습니다. HTML 테이블의 데이터 만 서버에서 리턴 된 정보를 보유합니다. 체크 박스 formatter: "checkbox", formatoptions: { disabled: false }의 변경 사항은 추적되지 않으므로 데이터를 읽는 데 문제가 발생할 수 있습니다. 모두 에 따라 달라짐 당신이 체크 박스의 데이터를 읽는 방법 ... the answer에 대해 생성 한 은 로컬의 jqGrid 데이터를 수정하여 확인란의 상태를 저장하는 방법을 보여줍니다.