С вашим стилем кода (создание html вручную без веб-элементов управления) я рекомендую посмотреть на ASP.NET MVC . Но я могу ответить на ваш вопрос:
Во-первых, вам нужно использовать asp: Repeater, как это:
<table>
<tr>
<td>Project Title</td>
<td>Download Link</td>
</tr>
<asp:Repeater ID="repLinks" runat="server"
onitemdatabound="repLinks_ItemDataBound">
<ItemTemplate>
<tr>
<td>
<asp:Label ID="lblProject" runat="server" Text="Label"></asp:Label>
</td>
<td>
<asp:HyperLink ID="hlLink" runat="server">HyperLink</asp:HyperLink>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
секунда: вам нужно инициализировать вашу коллекцию, которую вы хотите отобразить. Например: вы хотите отобразить коллекцию класса objInnovationListItem:
public class objInnovationListItem
{
public string Name { get; set; }
public string Title { get; set; }
public override string ToString()
{
return Title;
}
}
вам нужно сделать следующее:
// list - it's source List<objInnovationListItem>
var bindList = list.Where(p => objInnovationListItem["Innovation Approval Status"] == status); // filter your collection - replace you foreach and if statement
repLinks.DataSource = bindList; // set to repeater your displayed collection
repLinks.DataBind(); // bind your collection
и последнее - вам нужно указать в вашем шаблоне ItemRetater, как отображать ваш экземпляр objInnovationListItem - подписаться на событие вашего элемента Repeater ItemDataBound:
protected void repLinks_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
var item = e.Item.DataItem as objInnovationListItem;
((Label) e.Item.FindControl("lblProject")).Text = item.Name;
((HyperLink) e.Item.FindControl("hlLink")).NavigateUrl = string.Format("/downloaduri?id={0}", item.Title);
}
Результат будет выглядеть так: