Rob Cameron and Dale Michalk
"Pro ASP.NET 3.5 Server Controls and AJAX Components"
PerformSelect();
}
private List
items; //private collection backing Items property
private void CreateControlHierarchy(bool useData, bool
usingIDataSource, IEnumerable data)
{
items = new List();
IEnumerable ds = null;
if (HeaderTemplate != null)
{
RepeaterItem header = CreateItem(-1, ListItemType.Header, false, null);
}
CHAPTER 7 ?– SERVER CONTROL DATA B INDING 309
int count = -1;
if (useData)
{
if (!usingIDataSource)
ds = (IEnumerable)DataSourceHelper.ResolveDataSource(DataSource,
DataMember);
else
ds = data;
}
else
{
count = (int)ViewState["ItemCount"];
if (count != -1)
{
ds = new DummyDataSource(count);
}
}
if (ds != null)
{
int index = 0;
count = 0;
RepeaterItem item;
ListItemType itemType = ListItemType.Item;
foreach (object dataItem in (IEnumerable)ds)
{
if (index != 0)
{
RepeaterItem separator = CreateItem(-1,
ListItemType.Separator, false, null);
}
item = CreateItem(index, itemType, useData, dataItem);
items.Add(item);
index++;
count++;
if (itemType == ListItemType.Item)
itemType = ListItemType.AlternatingItem;
else
itemType = ListItemType.Item;
}
}
310 CHAPTER 7 ?– SE RVER CONTROL DATA B INDING
if (FooterTemplate != null)
{
RepeaterItem footer = CreateItem(-1, ListItemType.
Pages:
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426