In addition, you might try below,
1) Create a Class for example, DDLCache which will hold the initial value for the DDL, retrieved from the Db.
2) Store the object(which contains all the values retrieved from Db ) of type DDLCache into the Session.
3) So then you just need to check if the object of DDLCache stored into Session is null or empty, otherwise read from the Db.
More details about
Session[
^].
Hope it helps :)