У меня есть довольно простое веб-приложение, которое получает список элементов из базы данных (в DataTable) и связывает представление этого DataTable с повторителем.
При преобразовании моего DataTable в список (что делается в библиотеке классов), Page Load запускается во второй раз!Проходя через отладчик, те же элементы находятся в списке, который был в DataTable.
Единственный код на моей странице был:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
rptOffers.DataSource = DataAccess.GetOfferList(offerId); // returns List<T>
rptOffers.DataBind();
}
}
public static List<OfferItem> GetOfferList(int offerId)
{
DataTable dtOffers = GetOfferData(offerId);
List<OfferItem> offers = new List<OfferItem>();
// loop throw all of the offers
foreach (DataRow dr in dtOffers.Rows)
{
// add each offer to the List<>
OfferItem currentOffer = new OfferItem();
// initialize the OfferItem properties...
offers.Add(currentOffer);
}
return offers;
}
Когда я изменяю его на это, онработает нормально:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
rptOffers.DataSource = DataAccess.GetOfferItems(offerId);
rptOffers.DataBind();
}
}
Есть ли что-то еще, что мне нужно сделать в моем списке, чтобы он не запустил загрузку страницы снова?