Я получил очень простой объект:Создание ASP.NET Repeater динамически в C# Bound к списку объектов
public class DocumentType
{
private int id;
private string name;
public int ID
{
get { return this.id; }
set { this.id = value; }
}
public string Name
{
get { return this.name; }
set { this.name = value; }
}
}
У меня есть список объектов DocumentType: List<DocumentType> documentTypes = getDocuments();
Я m, работая над настраиваемым элементом управления, где я пытаюсь динамически создавать ретранслятор и динамически связывать его с моим списком объектов. Вот мой код:
private Repeater docList;
docList = new Repeater();
docList.DataSource = documentTypes;
docList.DataBind();
foreach (RepeaterItem repeatItem in docList.Items)
{
// if condition to add HeaderTemplate Dynamically only Once
if (repeatItem.ItemIndex == 0)
{
RepeaterItem headerItem = new RepeaterItem(repeatItem.ItemIndex, ListItemType.Header);
HtmlGenericControl hTag = new HtmlGenericControl("h4");
hTag.InnerHtml = "Header";
repeatItem.Controls.Add(hTag);
}
// Add ItemTemplate DataItems Dynamically
RepeaterItem repeaterItem = new RepeaterItem(repeatItem.ItemIndex, ListItemType.Item);
Label lbl = new Label();
// This part is completely broken!
lbl.Text = string.Format("Content: {0} {1} <br />", (DocumentType)repeaterItem.DataItem).ID, repeaterItem.NamingContainer);
repeatItem.Controls.Add(lbl);
// Add SeparatorTemplate Dynamically
repeaterItem = new RepeaterItem(repeatItem.ItemIndex, ListItemType.Separator);
LiteralControl ltrlHR = new LiteralControl();
ltrlHR.Text = "<hr />";
repeatItem.Controls.Add(ltrlHR);
}
Заголовок и разделитель работают отлично. Я не могу понять, как привязать шаблон элемента к текущему элементу, чтобы отобразить его. Я знаю, что у меня там сейчас, полностью сломан, но я попробовал несколько вариантов, не повезло.
Заранее благодарим за помощь или указатель в правильном направлении!
John - спасибо, ваш код работал отлично! Во всем примере кода, который я смотрел, я не мог найти этот фрагмент. У меня было ощущение, что это простое задание. Еще раз спасибо! – Dexter