How to delete item in repeating Panel and update list data?

I want to delete a row in Repeating Panel and update list data

In case list data have two same item , i want to get index of them to serve for deleting

Code Sample:

rom ._anvil_designer import Form1Template
from anvil import *
import anvil.tables as tables
import anvil.tables.query as q
from anvil.tables import app_tables
from .TemplateT import TemplateT


class Form1(Form1Template):

  def __init__(self, **properties):
    # Set Form properties and Data Bindings.
    self.init_components(**properties)
    self.listt = [
      {'name': 'toan', 'age': 21 },
      {'name': 'toan', 'age': 22 },
      {'name': 'toan', 'age': 21 }]
    
    self.list_i = RepeatingPanel()
    self.list_i.item_template = self.template
    self.list_i.items = self.listt
      
    
    self.bttn = Button(text='BUTTON')
    self.bttn.set_event_handler('click', self.btn_check)

      
    self.add_component(self.list_i)
    self.add_component(self.bttn)

  def template(self, item):
    def change(**event_args):
      print(event_args["sender"].text)
      item['name'] = event_args["sender"].text

    container = DataRowPanel(item=item)  

    fp = FlowPanel()  
    def delete(**event_args):
      fp.remove_from_parent()
      
    bt = Button(text='text')
    tb = TextBox()
    but = Button(text='Delete')
    but.set_event_handler('click', delete)
    tb.text = item['name']
    tb.add_event_handler('change', change)  
    fp.add_component(bt)
    fp.add_component(tb)
    fp.add_component(but)

    return  fp

  def btn_check(self, **event_args):
    print(self.listt)
    print('----')
    print(self.list_i.items)

Clone link:
share a copy of your app

1 Like

Hello, can you please share a clone link?