2017-01-23 3 views
-1

Я хочу установить флажок true в одной определенной строке (в фоновом режиме).Изменить сущность в sap.ui.table.Table

Я использую sap.ui.table.Table ... Пример: у меня есть десять заказов на покупку, и я хочу записать в поле ввода число (EBELN) и когда я нажимаю «Ввод» в таблице (в поле) в строке, где число = EBELN) должно быть изменено на «True», и фокус также должен быть в этой строке. Как я могу найти параметр и особенно, как его изменить?

Edit: Вид:

<Table id="tableItemsId" enableBusyIndicator="true" rows="{items>/results}" 
      selectionMode="None" visibleRowCount="12"> 
      <toolbar> 
       <m:Toolbar> 
        <m:Input id="inEbeln" 
        placeholder="{i18n>Ebeln}" /> 
        <m:Button text="{i18n>Ebeln}" press="onPress" /> 
       </m:Toolbar> 
      </toolbar> 
      <columns> 
       <Column width="2rem"> 
        <m:Label text="{i18n>Check}" /> 
        <template> 
         <m:CheckBox 
          selected="{ 
          path: '{items>Check}', 
          type: 'sap.ui.model.type.String' 
         }" 
          editable="false" /> 
        </template> 
       </Column> 
       <Column width="6rem"> 
        <m:Label text="{i18n>Ebeln}" /> 
        <template> 
         <m:Text text="{items>Ebeln}" /> 
        </template> 
       </Column> 

onPress:

onPress : function(oEvent) { 
       var that = this; 
       var oRouter = sap.ui.core.UIComponent.getRouterFor(this); 
       // Here I want to modify the row in the table "tableItemsId", where Ebeln = "inEbeln" 
+0

Вы можете добиться этого путем связывания, но некоторые более подробно о вашей реализации будет приветствоваться :) –

+0

Как я могу связать его? У меня есть sap.ui.tabe.Table. В текстовом поле я пишу Ebeln. Нажав enter, я хочу найти запись и изменить ее. \t \t \t \t \t 'вар sEbeln = this.getView() byId ("текстовое поле") \t \t \t \t \t \t \t .getValue(). \t \t \t \t \t var oRouter = sap.ui.core.UIComponent.getRouterFor (this); \t \t \t \t \t var oTable = this.getView(). ById ("tableItemsId"); 'Теперь у меня есть таблица и sEbeln и как я могу найти этот ebeln? – Mario

+0

Свяжите содержимое текстового поля с чем-то вроде {/ value}, затем привяжите выбранное состояние флажка к чему-то вроде {= $ {/ value} === $ {number}} (не можете дать правильный код без дополнительной информации о вашей реализации : p) –

ответ

0

Я только что создал небольшой example. В обработчик событий он перебирает все строки сравнивает введенное значение со значением в строке и устанавливает флажок соответственно:

onPress : function(event) { 
    // this gets the value of the input field 
    let value = this.byId("inEbeln").getValue(); 
    if (!value || value.length === 0) { 
     return; 
    } 
    // loop through all rows and compare the entered value with the value in the row 
    let rows = this.byId("table").getRows(); 
    for (let i = 0; i < rows.length; i += 1) { 
     let row = rows[i]; 
     let cells = row.getCells(); 
     // cells[0] contains the Checkbox 
     // cells[1] contains the Text with Ebeln 
     cells[0].setSelected(value === cells[1].getText()); 
    } 
} 
Смежные вопросы