Tabelle Updaten?
Verfasst: Mittwoch 1. August 2007, 15:21
Hallo,
bin ziemlich neu mit wxpython und habe folgendes Problem. Ich definiere eine Tabelle wie folgt:
So, und genau an der Stelle definiere ich einen Button zum Löschen von markierten Zeilen in der Tabelle. Die Zeilen werden in der Mysql Tabelle geöscht die dahinter steht und aus der die Zeilen ausgelesen werden und ganz oben wie geschrieben mit self.data = ....... in die Tabelle kommen.
Ich habe nun einfach versucht mit self.grid.table.data = ...... die Zeilen neu zu setzen. Das funktioniert auch, aber ziemlich unsauber: Die Änderung ist erst sichtbar wenn nach drücken des Knopfes in ein anderes Feld gesprungen wird und nebenbei bleiben die gelöschten Zeilen in der Tabelle als leere Zeilen.
Es gibt doch sicher eine einfache Möglichkeit die Tabelle komplett neu mit den neuen Daten zu laden?
Tut mir leid, ich komm von allein nicht drauf wie ich das bewerkstellige
Danke
Stolzi
bin ziemlich neu mit wxpython und habe folgendes Problem. Ich definiere eine Tabelle wie folgt:
Code: Alles auswählen
class CustomDataTable(gridlib.PyGridTableBase):
def __init__(self, log):
gridlib.PyGridTableBase.__init__(self)
.....
self.data = .......
class CustTableGrid(gridlib.Grid):
def __init__(self, parent, log):
gridlib.Grid.__init__(self, parent, -1)
self.table = CustomDataTable(log)
self.SetTable(self.table, True)
self.SetRowLabelSize(0)
self.SetMargins(0,0)
self.AutoSizeColumns(False)
gridlib.EVT_GRID_CELL_LEFT_DCLICK(self, self.OnLeftDClick)
class TestFrame(wx.Frame):
def __init__(self, parent, log):
self.log=log
wx.Frame.__init__(
self, parent, -1, "Custom Table, data driven Grid Demo", size=(640,480)
)
p = wx.Panel(self, -1, style=0)
self.grid = CustTableGrid(p, self.log)
b = wx.Button(p, -1, "Another Control...")
b.SetDefault()
self.Bind(wx.EVT_BUTTON, self.OnButton, b)
self.bs = wx.BoxSizer(wx.VERTICAL)
self.bs.Add(self.grid, 1, wx.GROW|wx.ALL, 5)
self.bs.Add(b)
p.SetSizer(self.bs)
Code: Alles auswählen
def OnButton(self, evt):
for i in range(self.grid.table.GetNumberRows()):
if self.grid.table.GetValue(i,3)==1:
DelName = self.grid.table.GetValue(i,2)
DelId = self.grid.table.GetValue(i,0)
self.grid.table.Testclass.UserDel(DelId,DelName)
Es gibt doch sicher eine einfache Möglichkeit die Tabelle komplett neu mit den neuen Daten zu laden?
Tut mir leid, ich komm von allein nicht drauf wie ich das bewerkstellige
Danke
Stolzi