#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. Спасибо!