Потяните выпадающий список, установленный один раз, в память и свяжите с ним.Это сэкономит вам 2000+ обращений к серверу.
Редактирование - создайте небольшой класс, что-то вроде этого:
public static class DropDownListCache
{
private static Func<DataTable> m_getDataFunc =
() => AccessYourDAL.GetYourDropdownListTableData1();
private static Func<DataTable> m_getDataFunc =
() => AccessYourDAL.GetYourDropdownListTableData2();
private static Lazy<DataTable> DropDown1 =
new Lazy<TDataType>(m_getDataFunc1,true);
private static Lazy<DataTable> DropDown2 =
new Lazy<TDataType>(m_getDataFunc2,true);
public static DataTable GetDropDownList1()
{
return DropDown1;
}
public static DataTable GetDropDownList2()
{
return DropDown2;
}
}
Затем замените SqlDataSource2
и SqlDataSource3
объектными объектами источника данных, которые указывают на два метода объекта кеша.
Вам нужно написать код для AccessYourDAL.GetYourDropdownListTableData1();
и AccessYourDAL.GetYourDropdownListTableData2();
Это просто заполнители.Это должно гарантировать, что вы платите только 2 раунда за всю сетку, а не 2 за строку.
1 + n * 2 вызовы базы данных становятся 1 + 2 вызовами базы данных.