Как я могу отправить XML-строку элементу управления ASCX Repeater?

#asp.net #.net #vb.net #ascx

#asp.net #.net #vb.net #ascx

Вопрос:

Я пишу элемент управления Repeater в файле ascx, который отображает некоторую информацию в виде строки, полученной в результате сложного поиска. В aspx-файле у меня есть запрос на получение DataView, который выдает мне XML-строку с информацией, необходимой для подачи повторителя. Проблема в том, что я не знаю, как я могу передать строку XML (или DataView или DataSet) из aspx в файл ascx, чтобы я мог отобразить информацию.

Спасибо.

Комментарии:

1. Проанализируйте свой XML в IEnumerable и укажите его как Repeater.DataSource = <some data source>

2. Куда именно я должен поместить это предложение? В html-вызове для ascx? как <data:data ID="data" runat="server" /> заранее благодарю вас.

Ответ №1:

Вам нужно предоставить свойство или метод в пользовательском элементе управления, чтобы страница, ссылающаяся на ASCX элемент управления, могла получать XML и что-то с ним делать (привязывать его к вашему повторителю).

Вы можете идеально создать метод внутри вашего элемента управления ASCX следующим образом:

 public void BindXml(string xml)
{

    //bind the xml to the repeater
}
  

Как свойство…

 public string XMLData { set 
                        { 
                          //use a DataSet to load the xml passed and bind it to 
                          //the repeater
                          DataSet dataset = new DataSet();
                          dataset.ReadXml(value);
                          repeater.DataSource=dataset; repeater.DataBind(); 
                          }
                        }
  

Страница aspx может вызывать метод следующим образом:

 yourusercontrol.BindXML(xml);
  

Или свойство:

 yourusercontrol.XMLData=xml;
  

Комментарии:

1. Я думаю, что я могу напрямую передать объект DataSet вместо того, чтобы записывать его в XML, а затем создавать другой набор данных в элементе управления ascx. Спасибо!