Don't use the drop down. You get to a point where the performance drops off and the usability suffers.
Consider using a portal. You've got options for filtering to select names. If you're using FM13 you could hide the portal in a popover in order to keep the ui clean. Put a button on the potal row that grabs the primary key in order to load the appropriate record.
Try this on your donor list view.
- Add a Global field to your Donor table.
- Put in the header of the list view.
- Give it an Object name.
- Set the First and last name fields to be included in the quick search
- create the following script
Perform Quick Find[Donortable::SEARCH] // SEARCH is your new global field
Go to Object [ Object name: "Searchfield"]
exit Script [ Result False]
As the user types, the system will do a search, each character should reduce the found set, until they see the record they are looking for or determine that it doesn't exist.
Then add a button that will take the selected Donor record and go to the detail screen so they can add the next donation.
If the donor doesn't exist create a new record then create the donation record.
Options (by no means comprehensive):
1. Build a picker popover that facilitates search on the list values.
2. A scripted process that takes the user to a list view layout of the donors for selection.
You could even leverage this technique or others for type ahead functionallity...
Its old (2009) but effective.