Поделиться через


DataBinder Класс

Определение

Предоставляет поддержку для конструкторов быстрой разработки приложений (RAD) в формировании и синтаксическом анализе выражений привязки данных. Этот класс не наследуется.

public ref class DataBinder sealed
public sealed class DataBinder
type DataBinder = class
Public NotInheritable Class DataBinder
Наследование
DataBinder

Примеры

В следующем примере статический GetPropertyValue метод используется для заполнения полей Repeater элемента управления с помощью ArrayList объекта из Product объектов . Метод Eval можно применить с тем же синтаксисом, но он будет работать не так быстро.

В этом примере используется пользовательский Product класс, который предоставляет строковое Model и числовое UnitPrice свойство.

<%@ Page Language="C#" %>
<%@ Import Namespace="ASPSample" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void  Page_Load(object sender, EventArgs e)
{
        // Create and populate an ArrayList to store the products.
        ArrayList ProductList = new ArrayList();
        ProductList.Add(new Product("Standard", 99.95));
        ProductList.Add(new Product("Deluxe", 159.95));

        // Bind the array list to Repeater
        ListRepeater.DataSource = ProductList;
        ListRepeater.DataBind();
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>DataBinder Example</title>
</head>
<body>
<form id="Form2" runat="server">
<table>
<asp:Repeater id="ListRepeater" runat="server">
    <HeaderTemplate>
    <tr>
        <th style="width:50; text-align:left">Model</th>
        <th style="width:100; text-align:right">Unit Price</th>
    </tr>
    </HeaderTemplate>
    <ItemTemplate>
    <tr>
        <!-- Databind to the Product information using the DataBinder methods. 
             The Container.DataItem refers to the ArrayList object bound to 
             the ASP:Repeater in the Page Load event. -->
        <td>
            <%#DataBinder.GetPropertyValue(Container.DataItem, "Model")%>
        </td>
        <!-- Format the UnitPrice as currency. ({0:c}) -->
        <td style="text-align:right">
            <%#DataBinder.GetPropertyValue(Container.DataItem,
                         "UnitPrice", "{0:c}")%>
        </td>
    </tr>
    </ItemTemplate>
</asp:Repeater>
</table>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ Import Namespace="ASPSample" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    Private Sub Page_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load

        ' Create and populate an ArrayList to store the products.
        Dim ProductList As New ArrayList
        ProductList.Add(New Product("Standard", 99.95))
        ProductList.Add(New Product("Deluxe", 159.95))

        ' Bind the array list to Repeater
        ListRepeater.DataSource = ProductList
        ListRepeater.DataBind()

    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>DataBinder Example</title>
</head>
<body>
<form id="Form2" runat="server">
<table>
<asp:Repeater id="ListRepeater" runat="server">
    <HeaderTemplate>
    <tr>
        <th style="width:50; text-align:left">Model</th>
        <th style="width:100; text-align:right">Unit Price</th>
    </tr>
    </HeaderTemplate>
    <ItemTemplate>
    <tr>
        <!-- Databind to the Product information using the DataBinder methods. 
             The Container.DataItem refers to the ArrayList object bound to 
             the ASP:Repeater in the Page Load event. -->
        <td>
            <%#DataBinder.GetPropertyValue(Container.DataItem, "Model")%>
        </td>
        <!-- Format the UnitPrice as currency. ({0:c}) -->
        <td style="text-align:right">
            <%#DataBinder.GetPropertyValue(Container.DataItem, _
                         "UnitPrice", "{0:c}")%>
        </td>
    </tr>
    </ItemTemplate>
</asp:Repeater>
</table>
</form>
</body>
</html>

Следующий код является пользовательским Product классом. Этот код следует включить в отдельный файл класса в каталоге App_Code, например Product.cs или Product.vb.

namespace ASPSample
{

    public class Product
    {
        string _Model;
        double _UnitPrice;

        public Product(string Model, double UnitPrice)
        {
            _Model = Model;
            _UnitPrice = UnitPrice;
        }

        // The product Model.
        public string Model
        {
            get {return _Model;}
            set {_Model = value;}
        }
            
        // The price of the each product.
        public double UnitPrice
        {
            get {return _UnitPrice;}
            set {_UnitPrice = value;}
        }
    }
}
Namespace ASPSample

    Public Class Product
        Private _Model As String
        Private _UnitPrice As Double

        ' The product Model.
        Public Property Model() As String
            Get
                Return _Model
            End Get
            Set(ByVal Value As String)
                _Model = Value
            End Set
        End Property

        ' The price of the each product.
        Public Property UnitPrice() As Double
            Get
                Return _UnitPrice
            End Get
            Set(ByVal Value As Double)
                _UnitPrice = Value
            End Set
        End Property


        Public Sub New(ByVal Model As String, ByVal UnitPrice As Double)
            _Model = Model
            _UnitPrice = UnitPrice
        End Sub

    End Class

End Namespace

Комментарии

Перегруженный статический Eval метод этого класса можно использовать в синтаксисе привязки данных на веб-странице ASP.NET. Это упрощает работу с синтаксисом, чем со стандартной привязкой данных. Однако, поскольку DataBinder.Eval обеспечивает автоматическое преобразование типов, это может привести к снижению производительности.

Дополнительные сведения о ASP.NET привязке данных, выражениях и синтаксисе см. в разделах Привязка к базам данных и Общие сведения о выражениях привязки данных.

Начиная с .NET Framework 4.5, можно использовать привязку модели для упрощения некоторых задач, которые необходимо было выполнять с помощью привязки данных в более ранних версиях. Серию руководств по использованию привязки модели с веб-формами см. в разделе Привязка модели и веб-формы.

Конструкторы

DataBinder()

Инициализирует новый экземпляр класса DataBinder.

Свойства

EnableCaching

Получает или задает значение, указывающее, включено ли кэширование данных во время выполнения.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Eval(Object, String)

Обрабатывает выражения привязки данных во время исполнения программы.

Eval(Object, String, String)

Обрабатывает выражения привязки данных во время выполнения и представляет результат в виде строки.

GetDataItem(Object)

Возвращает объявляемый элемент данных объекта.

GetDataItem(Object, Boolean)

Возвращает объявляемый элемент данных объекта, обозначающий успешное выполнение или сбой.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetIndexedPropertyValue(Object, String)

Возвращает значение свойства указанного контейнера и путь перемещения.

GetIndexedPropertyValue(Object, String, String)

Возвращает значение указанного свойства заданного контейнера и форматирует результат.

GetPropertyValue(Object, String)

Возвращает значение указанного свойства заданного объекта.

GetPropertyValue(Object, String, String)

Возвращает значение указанного свойства заданного объекта и форматирует результат.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IsBindableType(Type)

Определяет, можно ли привязать указанный тип данных.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел