Практическое руководство. Связывание данных в шаблонном элементе управления
Обновлен: Ноябрь 2007
Серверные веб-элементы управления FormView, DataList, Repeater и ListView используют шаблоны для отображения данных и для извлечения введенных пользователем данных, чтобы вставлять, обновлять или удалять данные. Кроме того, для настройки структуры данных можно использовать шаблоны с элементами управления GridView и DetailsView.
Можно привязать шаблонный элемент управления к элементу управления источником данных, такому как элементы управления LinqDataSource, ObjectDataSource или SqlDataSource, присвоив свойству DataSourceID шаблонного элемента управления значение идентификатора элемента управления источником данных. После этого можно использовать функции Eval и Bind в шаблоне для привязывания данных из источника данных. Дополнительные сведения см. в разделе Синтаксис выражений привязки данных.
Привязка элемента управления к данным при помощи шаблона
Добавьте элемент управления источником данных, как это показано далее на примере добавления элемента управления SqlDataSource на страницу:
<asp:SqlDataSource ID="SqlDataSource1" SelectCommand="SELECT * FROM [Products]" ConnectionString="<%$ ConnectionStrings:NorthwindConnection %>" RunAt="server"> </asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource1" SelectCommand="SELECT * FROM [Products]" ConnectionString="<%$ ConnectionStrings:NorthwindConnection %>" RunAt="server"> </asp:SqlDataSource>
Добавьте элемент управления, который поддерживает шаблоны, например, ASP.NET элемент управления FormView.
Присвойте свойству DataSourceID шаблонного элемента управления значение идентификатора элемента управления источником данных из шага 1, как это показано в данном примере:
<asp:FormView ID="FormView1" DataSourceID="SqlDataSource1" DataKeyNames="ProductID" Runat="server"> </asp:FormView>
Добавьте шаблоны в шаблонный элемент управления и заполните его элементами управления и разметкой.
Для отображения данных используйте функцию Eval в качестве установки свойства и сделайте ссылку на связанное поле данных. В шаблонах, используемых для вставки или редактирования данных, применяйте функцию Bind для ссылки на связанное поле данных, как это показано в следующем примере:
<asp:FormView ID="FormView1" DataSourceID="SqlDataSource1" DataKeyNames="ProductID" RunAt="server"> <ItemTemplate> <table> <tr><td align="right"><b>Product ID:</b></td> <td><%# Eval("ProductID") %></td></tr> <tr><td align="right"><b>Product Name:</b></td> <td><%# Eval("ProductName") %></td></tr> <tr><td align="right"><b>Category ID:</b></td> <td><%# Eval("CategoryID") %></td></tr> <tr><td align="right"><b>Quantity Per Unit:</b></td><td><%# Eval("QuantityPerUnit") %></td></tr> <tr><td align="right"><b>Unit Price:</b></td> <td><%# Eval("UnitPrice") %></td></tr> </table> </ItemTemplate> </asp:FormView>
<asp:FormView ID="FormView1" DataSourceID="SqlDataSource1" DataKeyNames="ProductID" RunAt="server"> <ItemTemplate> <table> <tr><td align="right"><b>Product ID:</b></td> <td><%# Eval("ProductID") %></td></tr> <tr><td align="right"><b>Product Name:</b></td> <td><%# Eval("ProductName") %></td></tr> <tr><td align="right"><b>Category ID:</b></td> <td><%# Eval("CategoryID") %></td></tr> <tr><td align="right"><b>Quantity Per Unit:</b></td><td><%# Eval("QuantityPerUnit") %></td></tr> <tr><td align="right"><b>Unit Price:</b></td> <td><%# Eval("UnitPrice") %></td></tr> </table> </ItemTemplate> </asp:FormView>
Каждый серверный веб-элемент управления поддерживает различные шаблоны. Например, элемент управления Repeater поддерживает ItemTemplate и AlternatingItemTemplate для отображения данных при помощи переменных элементов управления, стилей и разметки. Дополнительные сведения о серверных веб-элементах управления и поддерживаемых шаблонах см. в разделе Общие сведения о серверных веб-элементах управления ASP.NET с привязкой к данным.
См. также
Задачи
Практическое руководство. Подключение к базе данных ODBC с помощью элемента управления SqlDataSource