protected void Page_Load{otaject sender, EventArgs e)
{
  string xmlContent;
  // (Извлечь содержимое XML из другого места.)
  soureeDVD.Data = xmlContent;
}

Совет. Если вы используете такой подход, то можете решить, что будет неплохой идеей установить свойство XmlDataSource.DataFile во время проектирования, чтобы Visual Studio загружал информацию о схеме вашего XML-документа, обеспечивая доступ к ней другим элементам управления. Только не забудьте удалить эту установку по окончании разработки, потому что свойство DataFile переопределяет свойство Data, когда они оба установлены.

Это позволяет читать содержимое XML из другого источника (вроде базы данных) и также работает с привязанными элементами управления данными. Однако при этом требуется некоторое дополнительное кодирование.

Даже если вы используете свойство XmlDataSourcе.Data, привязка данных XML все же не настолько гибкая, как и классы .NET XML, с которыми ны познакомились ранее в этой главе. Одним из ключевых ограничений является то, что содержимое XML должно загружаться в память целиком как строковый объект. Если приходится иметь дело с большими XML-документами либо нужно обеспечить максимальную масштабируемость Web-лриложений, вы можете ощутимо сократить накладные расходы, используя XmlReader, даже несмотря на то, что он требует намного большего объема дополнительного кодирования. Самостоятельная обработка процесса анализа XML также предоставляет неограниченную гибкость в отношении упорядочивания и агрегации данных для получения итоговой информации, что не всегда легко, достичь, применяя только XSLT.

На заметку! Если вы используете XmlDataSource для отображения XML-данных из файла, убедитесь, что включено кэширование, чтобы уменьшить необходимое количество открытий файла. Это делается установкой свойств CacheDuration, CacheDependency и CachePolicy. Если ваш файл изменяется нечасто, вы сможете постоянно держать его в кэше, что обеспечит хорошую производительность. С другой стороны, если нужно часто обновлять лежащий в основе XML-документ, то есть вероятность столкнуться с проблемами параллельного доступа, как описано в главе 13.

Обновление XML через XmlDataSource

В отличие от SqlDataSource и ObjectDataSource, XmlDataSource не поддерживает редактируемую привязку. В этом можно убедиться, выполнив простой тест, — просто привяжите XmlDataSource к GridView и добавьте поле CommandField с кнопками редактирования. Когда вы попытаетесь подтвердить обновление, то получите ошибку, информирующую о том, что источник данных не поддерживает эту функцию.

Однако в XmlDataSource предусмотрен метод Save(). Этот метод заменяет файл, указанный в свойстве DataFile текущим XML-содержимым. Хотя вы должны добавить код для вызова метода Save(), некоторые разработчики используют эту технику, чтобы обеспечить редактируемую привязку данных XML.

предыдущая    следующая страница    вначало главы    оглавление

563

Hosted by uCoz