On Sunday, November 14, 2010 09:38:52 am John Fabiani wrote:
> On Sunday, November 14, 2010 09:19:03 am Carey Gagnon wrote:
> > > My app goes one step further in that I can add clients (builders in my
> > > case) , which are added via a child form launched from the main form.
> > > When I close the child form how do I update the dropdownlist?
> > > 
> > > from the parent form:
> > > 
> > > ## *!* ## Dabo Code ID: dButton-dPanel
> > > 
> > > def onHit(self, evt):
> > >     self.Form.newRecordBuilder()
> > > 
> > > def newRecordBuilder(self):
> > >     dabo.ui.createForm("frmBuildersAdd.cdxml", show=True, parent=self)
> > >     self.hide()
> > > 
> > > back to the parent from the child:
> > > 
> > > def closeProgram(self,evt):
> > >     self.openBuildersForm = True
> > >     
> > >       self.close()
> > > 
> > > def beforeClose(self, evt):
> > >     if self.openBuildersForm:
> > >         self.Parent.show()
> > > 
> > > Thanks
> > > Carey
> > 
> > Ok...my 1st question can be ignored. Adding:
> > 
> > def afterSave(self):
> >     # This will only get called if the save succeeds
> >     self.requery()
> > 
> > Now updates the grid with the new value.
> > 
> > Could still us some help on updating the dropdown list however.
> > 
> > Thanks
> > Carey
> 
> OK you found a solution to the first problem.
> 
> The dropdown choices are static.  In most cases this works well because
> most dropdowns use static list - like US states.    But in this case you
> have to update the dropdown.  The way I have been successful is to create
> a new class for my dropdowns.  In the new class I override the update
> method like below. So when an update occurs my dropdown is updated.
> 
> class CourseDropDown(dabo.ui.dDropdownList):
>     def update(self):
>         self.removeAll()
>         self.Choices,self.Keys = self.Form.courseChoices()
>         self.super()
> 
> "self.Form.courseChoices" is a method that retrieves the data.
> 
> And this is how I create the control on the form.
> 
> courselist=CourseDropDown(self, Width = 500, ValueMode = 'key', RegID =
> 'courseID', DataSource = "public.esenroll", DataField = "fk_escourse")
> 
> I don't recall how to add a new class to ClassDesigner and how to use it. 
> But I think Ed provided a way to get this done.
> 
> As always maybe this is not the best way and anyone can correct me.
> 
> Johnf

You might want to check out the dynamic* stuff.  I always wanted to see if I 
could use it with dropdowns.

Johnf
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: 
http://leafe.com/archives/byMID/[email protected]

Reply via email to