I get out of memory on large datasets with this. Works okay with a few rows, but with a lot it eventually crashes. I know why (I am populate drop down lists over again even though the data in the dropdown for each row is the same), but is there a better way to have a dropdown in my listview and populate it through a stored proc? A requirement is that I need to try to avoid paging.

Code:
protected void lstGames_ItemDataBound(object sender, ListViewItemEventArgs e)
        {
                if (e.Item.ItemType == ListViewItemType.DataItem)
                {
                    DropDownList ddlValidatedDesc_Paytable = (DropDownList)e.Item.FindControl("ddlValidatedDesc");

                    LoadDropDown("EXEC dbo.asp_DropDown 2", ddlValidatedDesc);

                    DropDownList ddlGameName = (DropDownList)e.Item.FindControl("ddlGameName");

                    LoadFeatures("EXEC dbo.asp_Feature 7", ddlGameName);

                    ddlGameName .Items.Insert(0, "");

                    DropDownList ddlSkill = (DropDownList)e.Item.FindControl("ddlSkill");

                    LoadDropDown("EXEC dbo.asp_Dropdown 8", ddlValidate);

                    ddlSkill .SelectedIndex = ddlSkill .Items.IndexOf(ddlSkill.Items.FindByText("N"));
                }
        }