В моем коде есть свойство, которое отправляет информацию в пользовательском контроле, который является ретранслятором. rptOwners - это репитер, который я использую. Информация внутри ретранслятора должна быть проанализирована вручную в xml и отправлена обратно через свойство в коде. Проблема в том, что я не могу получить доступ к значениям элементов управления внутри повторителя.
При отладке я вижу, что есть 2 элемента, которые я ожидал в rptOwners.DataSource, и что rptOwners.Items.Count = 2. Затем я вижу в окне просмотра, что нужная мне информация есть Я не могу получить к нему доступ.
Я пробовал rptOwners.DataSource [0] .Name и т. Д., Но он говорит, что «не может применить индексирование к выражению объекта типа.
public string xmlString
{
get
{
var _builder = new StringBuilder();
var rpt = rptOwners.DataSource;
IList<string> ownersRepeater = new List<string>();
foreach (var item in rpt )
{
_builder.Append("<Owners>");
_builder.Append("<Owner>");
_builder.Append(String.Format("<item>{0}</item>", name));
_builder.Append(String.Format("<item>{0}</item>", address));
_builder.Append(String.Format("<item>{0}</item>", age));
_builder.Append("</Owner>");
_builder.Append("</Owners>");
}
return _builder.ToString();
}
Спасибо за помощь. Дайте мне знать, если это не было достаточно ясно.
Вот что я имею в виду ...
Вот ответ:
foreach (RepeaterItem item in rptOwners.Items)
{
var lblOwnerName = (Label)item.FindControl("lblOwnerName");
_builder.Append("<Owners>");
_builder.Append("<Owner>");
_builder.Append(String.Format("<item>{0}</item>", lblOwnerName));
_builder.Append(String.Format("<item>{0}</item>", item));
_builder.Append(String.Format("<item>{0}</item>", item));
_builder.Append(String.Format("<item>{0}</item>", item));
_builder.Append(String.Format("<item>{0}</item>", item));
_builder.Append(String.Format("<item>{0}</item>", item));
_builder.Append(String.Format("<item>{0}</item>", item));
_builder.Append("</Owner>");
_builder.Append("</Owners>");
}
return _builder.ToString();