무료 jqGrid 4.14.0을 사용하고 serializeGridData를 SOAP 요청과 함께 사용하는 페이지가 있습니다. IE 11에서는 모든 것이 잘되지만 Edge에서는 그리드가 표시되지 않고 헤더 만 표시됩니다. 페이지를 디버깅하여 SOAP 요청 및 응답이 올바른지 확인할 수 있습니다. 아무도 내가 문제를 발견 할 수있는 방법이나이 문제를 해결할 수있는 방법에 대한 힌트를 줄 수 있습니까? 고맙습니다.jqgrid 가장자리 브라우저의 행이 없습니다.
1
A
답변
0
구문 분석해야하는 XML 데이터에는 네임 스페이스가 포함되어 있습니다. "rs\\:data"
및 "z\\:row"
과 같은 이스케이프 된 문자열을 사용하여 데이터를 구문 분석했습니다.
xmlReader: {
root: "rs\\:data",
row: "z\\:row",
repeatitems: false,
id: "[ows_ID]"
}
https://jsfiddle.net/psturm/rugr8tc0/ 그런 방식은 안전하지 않습니다. 오, 당신이 사용하는 웹 브라우저에서 사용하는 오 jQuery 버전에 달려 있습니다. 필요한 XML 노드를 가져 오는 자체 콜백 함수를 사용하는 것이 좋습니다. 기능 getChildNodesByName
이
function getChildNodesByName (node, name) {
var items = [], children = node.childNodes, iChild, nChildren = children.length;
for (iChild = 0; iChild < nChildren; iChild++) {
child = children[iChild];
if (child.nodeType === 1 && child.nodeName === name) {
items.push(child);
}
}
return items;
}
결과 데모 내 컴퓨터에 설치되어있는 모든 웹 브라우저에서 작동하는 것 같다입니다 예를 들어,
xmlReader: {
root: function (node) {
//return node.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild;
return getChildNodesByName(
node.firstChild.firstChild.firstChild.firstChild.firstChild,
"rs:data")[0];
},
row: function (node) {
return getChildNodesByName(node, "z:row");
},
repeatitems: false,
id: "[ows_ID]"
}
를 사용할 수 있습니다. 수정 된 데모보기 https://jsfiddle.net/OlegKi/rugr8tc0/7/
문제를 재현하는 데 사용할 수있는 데모를 준비 할 수 있습니까? 서버에서 가져온 SOAP 응답을 포함해야합니다. 응답은 에코 서비스 (또는 텍스트 파일)에서로드하여 문제를 시뮬레이트 할 수 있습니다. 예를 들어 데모 https://jsfiddle.net/OlegKi/zqLp4yrg/43/는 'url :/echo/json/", postData : {JSON : JSON.stringify (serverResponse)}, mtype :"POST "를 사용합니다. 데이터 유형 : "json". 'url :/echo/xml /'과'postData : {xml : soapResponseAsString}, mtype :'POST ', 데이터 유형 : "xml"'을 사용할 수있다. ([here] (http://doc.jsfiddle.net/ use/echo.html))를 사용하여 Echo 서비스에서 XML 데이터를로드합니다. – Oleg
다음은 데모입니다. https://jsfiddle.net/psturm/rugr8tc0/ –