Страница 3 из 8 Связывание SQL данных с DataList Control В то время как Repeater является итератором общего назначения, DataList обеспечивает некоторые дополнительные возможности управления размещением в листинге. В отличие от Repeater, DataList позволяет включить дополнительные элементы вне определения шаблона, подобно строкам, ячейкам и промежуткам таблицы, которые содержат атрибуты стиля. Это предоставляет более широкие возможности форматирования. Например, DataList поддерживает свойства RepeatColumns и RepeatDirection, которые определяют, должны ли данные быть представлены в нескольких столбцах и в каком направлении (вертикально или горизонтально) чтобы представить элементы данных. DataList также поддерживает атрибуты стиля: тип, размер и имя шрифта. Этот пример показывает, как обратиться к SQL базе данных, которая содержит заголовки книг и немного ключевой информации о каждой книге, и затем отображает данные, используя DataList. Результат имеет всю заданную информацию для каждой книги, сгруппированную вместе, и информация для каждой книги представлена в двух столбцах в порядке слева направо. Доступ к SQL базе данных 1. Импортируйте необходимые для вашей страницы пространства имён. Это позволит обеспечить ваш код доступом к необходимым классам. <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SQL" %> <html> 2. В пределах тэга <script language="C#" runat="server">, включите функцию Page_Load, которая обеспечит подключение к базе данных, создаст и заполнит новый Dataset информацией из базы данных, и затем свяжет Repeater control с Dataset. Это показано в следующем примере кода: <script language="C#" runat="server"> void Page_Load(Object sender, EventArgs e) { а) Установите подключение к базе данных "pubs", расположенной на локальном компьютере. SQLConnection myConnection = new SQLConnection ("server=localhost; uid=sa;pwd=;database=pubs"); б) Соединитесь с SQL базой данных, используя запрос "SELECT *", чтобы получить все данные из таблицы "Titles". SQLDataSetCommand myCommand = new SQLDataSetCommand ("select * from Titles", myConnection); в) Создайте и заполните Dataset. DataSet ds = new DataSet(); myCommand.FillDataSet(ds, "Titles"); г) Свяжите MyDataList с таблицей "Titles", используя заданное по умолчанию представление. Заметьте, что MyDataList - это "ID" установленный для DataList в <body> страницы. MyDataList.DataSource = ds.Tables["Titles"].DefaultView; MyDataList.DataBind(); } 3. В тэге страницы <body>, отобразите данные. </script> <body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0"> 4. Откройте DataList, устанавливая его для двух столбцов, которые будут заполнен в горизонтальном порядке. <ASP:DataList id="MyDataList" RepeatColumns="2" RepeatDirection= "Horizontal" runat="server"> 5. Установите шаблон DataList с именем "itemtemplate". <template name="itemtemplate"> а) Используйте элемент <div>, что бы обрабатывать данные для каждой книги как логический модуль. <div style="padding:15,15,15,15;font-size:10pt; font-family:Verdana"> б) Используйте вложенный элемент <div> для связи данных заголовка и показа их различными шрифтами. <div style="font:12pt verdana;color:darkred"> <i><b><%# DataBinder.Eval(Container.DataItem, "title")%> </i></b> </div> <br> в) Связываем и показываем остальную часть данных в шрифте, установленном элементом <div>. <b>Title ID: </b><%# DataBinder.Eval(Container.DataItem, "title_id") %><br> <b>Category: </b><%# DataBinder.Eval(Container.DataItem, "type")%><br> <b>Publisher ID: </b><%# DataBinder.Eval (Container.DataItem, "pub_id") %><br> <b>Price: </b><%# DataBinder.Eval (Container.DataItem, "price", "$ {0}") %><p> </div> </template> </ASP:DataList>
</body> </html> |