jqGrid는 간접 데이터를 표시하기 위한 "선택" 포맷터를 제공합니다. 그러나 이 포맷터에는 동적 채우기 옵션 측면에서 제한이 있습니다. 이 문제를 극복하기 위해 선택 옵션을 채우는 데 사용되는 추가 데이터를 포함하도록 서버의 JSON 응답을 확장할 수 있습니다.
원래 질문:
데이터 구조는 다음과 같습니다.
SID | SNAME | CITY |
---|---|---|
1 | ABC | 11 |
2 | XYZ | 12 |
3 | ACX | 13 |
4 | KHG | 14 |
5 | ADF | 15 |
6 | KKR | 16 |
또 다른 테이블에는 도시 이름이 나와 있습니다.
CID | CNAME |
---|---|
11 | Chennai |
12 | Mumbai |
13 | Delhi |
목표는 데이터를 다음과 같이 표시하는 것입니다.
SID | SNAME | CITY |
---|---|---|
1 | ABC | Chennai |
2 | XYZ | Mumbai |
3 | ACX | Delhi |
4 | KHG | Banglore |
5 | ADF | Hyderabad |
6 | KKR | Kolkatta |
확장 JSON 응답을 사용한 솔루션:
서버는 도시 ID를 도시 이름에 매핑하는 "cityMap" 속성을 포함하도록 JSON 응답을 확장할 수 있습니다.
<code>{ "cityMap": {"11": "Chennai", "12": "Mumbai", "13": "Delhi"}, "rows": [ { "SID": "1", "SNAME": "ABC", "CITY": "11" }, { "SID": "2", "SNAME": "XYZ", "CITY": "12" }, { "SID": "3", "SNAME": "ACX", "CITY": "13" }, { "SID": "4", "SNAME": "KHG", "CITY": "13" }, { "SID": "5", "SNAME": "ADF", "CITY": "12" }, { "SID": "6", "SNAME": "KKR", "CITY": "11" } ] }</code>
jqGrid 구성:
<code>colModel: [ {name: "SNAME", width: 250}, {name: "CITY", width: 180, align: "center"} ], beforeProcessing: function (response) { var $self = $(this); $self.jqGrid("setColProp", "CITY", { formatter: "select", edittype: "select", editoptions: { value: $.isPlainObject(response.cityMap) ? response.cityMap : [] } }); }, jsonReader: { id: "SID"}</code>
이 접근 방식을 사용하면 서버의 데이터를 기반으로 선택 옵션을 동적으로 채울 수 있습니다. 또한 서버 데이터를 기반으로 다른 열 옵션을 동적으로 설정하는 데 사용할 수도 있습니다.
위 내용은 확장된 JSON 응답을 사용하여 jqGrid 선택 옵션을 동적으로 채우는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!