Если синтаксис привязки данных в строке недостаточно хорош для вас - вы всегда можете подключиться к событию ItemDatabound DataList.
<asp:DataList runat="server" ID="myDataList"
OnItemDataBound="DataList_ItemDataBound">
<ItemTemplate>
<uc:MyControl ID="id1" runat="server" />
</ItemTemplate>
</asp:DataList>
Затем в коде вашей страницы / содержащего элемента управления вы можете добавить событие ItemDataBound.
protected void DataList_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item
|| e.Item.ItemType == ListItemType.AlternatingItem)
{
DataListItem item = e.Item;
//List<string> or whatever your data source really is...
List<string> dataItem = item.DataItem as List<string>;
MyControl lit = (MyControl)item.FindControl("id1");
lit.PropertyName = dataItem;
}
}
Для получения дополнительной информации о событии DataList.ItemDataBound - Читать здесь
Если вы предпочитаете не объявлять свой встроенный делегат ItemDataBound в ASPX, вы также можете сделать это в коде позади - возможно, в вашем событии загрузки страницы:
myDataList.ItemDataBound += DataList_ItemDataBound;
Надеюсь, это поможет