2017-01-24 1 views
0

테이블의 행에서 입력 필드에 포커스를 설정하려고합니다. 이 행의 ID를 읽고 포커스를 설정하려면 어떻게해야합니까?sap.ui.table.Table의 입력 필드에 포커스를 설정하는 방법

for(var i = 0; i < rowCount; i++) { 

    var oEntry = this.getView().getModel("items").getProperty(
    oTable.getContextByIndex(i).sPath); 

    if (oEntry.Field1 === sField1){ 
     //Here I will set the focus in an Input field 
    } 
} 

감사

편집

:

<columns> 
    <Column width="2rem" sortProperty="Field"> 
     <m:Label text="{i18n>Field}" /> 
     <template> 
      <m:CheckBox 
       selected="{ 
       path: 'items>Field', 
       type: 'sap.ui.model.type.String' 
       }" 
      editable="false" /> 
     </template> 
    </Column> 
    <Column width="6rem"> 
     <m:Label text="{i18n>Field1}" /> 
     <template> 
      <m:Text text="{items>Field1}" /> 
     </template> 
    </Column> 
    <Column width="6rem"> 
     <m:Label text="{i18n>Field2}" /> 
     <template> 
      <m:Input 
       value="{items>Field2}" /> 
     </template> 
    </Column> 

이보기에 내 테이블의 열입니다 : 내가 선, 필드 1 = s.Field1에 포커스를 취득하고자합니다. 특수 줄에 ID를 어떻게 설정합니까?

편집 2.0 :

XML보기 :

<Column width="6rem"> 
    <m:Label text="{i18n>Field2}" /> 
    <template> 
     <m:Input 
      id="input2" value="{items>Field2}"/> 
    </template> 
</Column> 

컨트롤러 :

for(var i = 0; i < rowCount; i++) { 
    var oEntry = this.getView().getModel("items").getProperty(
           oTable.getContextByIndex(i).sPath); 
    if (oEntry.Field1 === sField1){ 
     this.getView().byId("input2").focus(); 

    } 
} 
this.getView().getModel("items").refresh(true); 

답변

0

당신은 그것의 ID를 통해보기를 얻는 시도하고 다음에 포커스를 설정합니다 focus() 기능을 사용할 수 있습니다 그것. 예를 들어

,
var oInput = new sap.m.Input({id: "inputID"}) 
.addEventDelegate({ 
    onAfterRendering: function(){ 
     oInput.focus(); 
    } 
}); 

또는 입력 id를 가지고있는 경우, "입력 1은"다음이

this.getView().byId("input1").focus(); 

편집 할 수 있다고

: 가정 입력하면 ID로 할 요소이다 그렇다면 간단합니다.

<Column width="6rem"> 
    <m:Label text="{i18n>Field2}" /> 
    <template> 
     <m:Input 
      value="{items>Field2}" 
      id="input1" /> 
    </template> 
</Column> 
+0

감사합니다.하지만 테이블에서 올바른 행을 선택하려면 어떻게해야합니까? – Mario

+0

은 접근하고자하는 입력 행에 ID를주고,'.byId ("당신의 ID는")'메소드를 사용하여 코드 행에서 찾을 수 있습니다. 먼저'this.getView()'를 사용하여 현재 뷰에 대한 참조를 얻어야한다. 위의 편집을 확인하십시오. – Developer

+0

감사합니다. 게시물을 좀 더 자세히 편집합니다. 어디에서 id를 연속적으로 설정할 수 있습니까? – Mario

0

다음과 같이 할 수도 있습니다 :

var oTable = this.getView().byId("idTable"); 
var aRows = oTable.getRows(); 
for (var i = 0; i < aRows.length; i++) { 
    if (aRows[i].getBindingContext().getObject().Field1 === sField1) { 
     var oCell = aRows[i].getCells()[2]; // select 3rd cell 
     oCell.focus(); // focus on the Input field 
     break; 
    } 
} 
관련 문제