2017-03-20 2 views
0

XML 모델이 테이블에 바인딩되어 있고 모델에 새 행을 추가하려고합니다.SAPUI5 SAPUI5 XML 모델 항목 추가

<gettagevents> 
<tageventlist> 
    <tagevent> 
     <time>2011-09-09T14:29:16.302Z</time> 
     <factory>06</factory> 
     <materialcode>21</materialcode> 
     <serial>16999991231</serial> 
    </tagevent> 
    <tagevent> 
     <time>2011-09-09T14:29:17.101Z</time> 
     <factory>06</factory> 
     <materialcode>21</materialcode> 
     <serial>16999991232</serial> 
    </tagevent> 
</tageventlist> 

만 관련 일련의 값, 그래서 나를 모델에 새로운 일련 번호를 추가하는 것이 충분하다 : XML 데이터 자체는 오히려 간단하다. 나는 document.createElement에 대해 읽었다. 나는 나를 위해 일할 수 있다고 생각하지만, 제대로 작동하지 않는다.

내 컨트롤러에서이 부분이 있습니다

var oTable = this.getView().byId("tbl_det3_rfid"); 
var oSerial = "1234567890"; 
var oModel = oTable.getModel(); 
var aData = oModel.getProperty("/tageventlist/tagevent/serial") 

사람이 너무 일련 예를 들어, 내 모델에 새로운 라인을 추가하는 방법이 작업을 수행하려면 좀 도와 줄래 1234567890?

감사합니다,

+0

현재 모델이 테이블에 어떻게 바인딩되어 있습니까? –

+0

내 XML보기에서 다음과 같은 항목을 바인딩합니다 : items = "{path : '/ tageventlist/tagevent'}"그리고 {serial}을 사용하여 값과 바인딩 자체를 표시합니다. \t var oTable = this.getView(). byId ("tbl_det3_rfid"); \t oTable.setModel (oRfidModel); – Tim

답변

0

은 내가 XML Model control가 새 레코드를 추가 할 수 있습니다 생각하지 않습니다. 그러나 모델에서 XML 객체를 가져 와서 jQuery를 사용하여 XML 노드를 추가 할 수 있습니다. 이 후에 테이블의 새 노드를보기 위해 모델을 업데이트해야합니다.

var oXML = oModel.getObject("/tageventlist"); 
$(oXML).append("<tagevent><time>2011-09-09T14:29:16.302Z</time><factory>06</factory><materialcode>21</materialcode><serial>16999991236</serial></tagevent>"); 
oModel.refresh(); 
+0

스티븐 감사합니다. 잘 작동합니다! – Tim

+0

위의 문제로 돌아갑니다. 재미있게도 위의 시나리오는 Chrome에서 작동하지만 IE에서는 모델에 새 행을 추가하지 않습니다. Chrome에서 모델을 새로 고침하면 IE에 새 줄이 표시됩니다. 오류 메시지가 나타나지 않고 새 행만 표시되지 않습니다. 어떤 아이디어? – Tim

+0

죄송합니다.이 시간을 확인하지 못했습니다. 열어 본 새 스레드에 대한 질문에 대한 솔루션을 게시했습니다. –