DataBinder.Eval 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
리플렉션을 사용하여 런타임에 개체에 대한 데이터 바인딩 식을 구문 분석하고 계산합니다.
오버로드
Eval(Object, String) |
런타임에 데이터 바인딩 식을 계산합니다. |
Eval(Object, String, String) |
런타임에 데이터 바인딩 식을 계산하고 결과를 문자열 형식으로 지정합니다. |
설명
.NET Framework 4.5부터 모델 바인딩을 사용하여 이전 버전의 데이터 바인딩을 통해 수행해야 했던 일부 작업을 간소화할 수 있습니다. Web Forms 모델 바인딩 사용에 대 한 자습서 시리즈를 참조 하세요 모델 바인딩 및 Web Forms합니다.
Eval(Object, String)
런타임에 데이터 바인딩 식을 계산합니다.
public:
static System::Object ^ Eval(System::Object ^ container, System::String ^ expression);
public static object Eval (object container, string expression);
static member Eval : obj * string -> obj
Public Shared Function Eval (container As Object, expression As String) As Object
매개 변수
- container
- Object
식을 계산할 개체 참조이며, 페이지에 지정된 언어로 표시된 올바른 개체 식별자여야 합니다.
- expression
- String
바인딩된 컨트롤 속성에 포함될 container
개체부터 public 속성 값까지의 탐색 경로이며, C#에서의 Tables[0].DefaultView.[0].Price
또는 Visual Basic에서의 Tables(0).DefaultView.(0).Price
와 같이 마침표로 구분된 속성 또는 필드 이름의 문자열이어야 합니다.
반환
데이터 바인딩 식을 계산한 결과인 Object 인스턴스입니다.
예외
트리밍 후 expression
이 null
이거나 빈 문자열인 경우
예제
다음 예제에서는 메서드를 사용하여 Eval
데이터를 제어에 바인딩하는 Repeater 방법을 보여 줍니다. Product라는 데이터 클래스가 필요합니다.
public class Product
{
public int ProductID { get; set; }
public string Name { get; set; }
public double Price { get; set; }
}
Public Class Product
Public Property ProductID As Integer
Public Property Name As String
Public Property Price As Double
End Class
코드 숨김 파일은 테스트 데이터를 로드하고 해당 데이터를 컨트롤에 Repeater 바인딩합니다.
public partial class ShowProducts : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var products = new List<Product>();
products.Add(new Product() { ProductID = 1, Name = "Bike", Price = 150.00 });
products.Add(new Product() { ProductID = 2, Name = "Helmet", Price = 19.99 });
products.Add(new Product() { ProductID = 3, Name = "Tire", Price = 10.00 });
ProductList.DataSource = products;
ProductList.DataBind();
}
}
Public Class ShowProducts
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim products As New List(Of Product)()
products.Add(New Product With {.ProductID = 1, .Name = "Bike", .Price = 150.0})
products.Add(New Product With {.ProductID = 2, .Name = "Helmet", .Price = 19.99})
products.Add(New Product With {.ProductID = 3, .Name = "Tire", .Price = 10.0})
ProductList.DataSource = products
ProductList.DataBind()
End Sub
End Class
컨트롤에 대한 Repeater 선언적 구문에서 매개 변수에 Eval 메서드 container
를 Container.DataItem
사용합니다.
<asp:Repeater ID="ProductList" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Name") %> for only <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>
<br />
<a href='<%# DataBinder.Eval(Container.DataItem, "ProductID", "details.asp?id={0}") %>'>See Details</a>
<br />
<br />
</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="ProductList" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Name") %> for only <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>
<br />
<a href='<%# DataBinder.Eval(Container.DataItem, "ProductID", "details.asp?id={0}") %>'>See Details</a>
<br />
<br />
</ItemTemplate>
</asp:Repeater>
또는 함수를 호출 Eval
하고 매개 변수를 container
포함하지 않을 수 있습니다.
<asp:Repeater ID="ProductList" runat="server">
<ItemTemplate>
<%# Eval("Name") %> for only <%# Eval("Price", "{0:c}") %>
<br />
<a href='<%# Eval("ProductID", "details.asp?id={0}") %>'>See Details</a>
<br />
<br />
</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="ProductList" runat="server">
<ItemTemplate>
<%# Eval("Name") %> for only <%# Eval("Price", "{0:c}") %>
<br />
<a href='<%# Eval("ProductID", "details.asp?id={0}") %>'>See Details</a>
<br />
<br />
</ItemTemplate>
</asp:Repeater>
설명
매개 변수의 expression
값은 public 속성으로 평가되어야 합니다.
이 메서드는 Visual Studio와 같은 RAD (개발) 디자이너 신속한 애플리케이션에서에서 데이터 바인딩을 만들 때 자동으로 호출 됩니다. 선언적으로 사용하여 텍스트 문자열로의 캐스팅을 간소화할 수도 있습니다. 이렇게 하려면 표준 ASP.NET 데이터 바인딩에 사용되는 식 구문을 사용합니다<%# %>
.
이 메서드는 템플릿 목록에 있는 컨트롤에 데이터를 바인딩할 때 특히 유용합니다.
참고
이 메서드는 런타임에 리플렉션을 사용하여 런타임에 늦게 바인딩된 평가를 수행하므로 표준 ASP.NET 데이터 바인딩 구문에 비해 성능이 현저히 느려질 수 있습니다.
목록 웹 컨트롤(예: GridView, DetailsViewDataList또는 Repeatercontainer
Container.DataItem
)의 경우 . 페이지에 container
바인딩하는 경우 여야 Page
합니다.
.NET Framework 4.5부터 모델 바인딩을 사용하여 이전 버전의 데이터 바인딩을 통해 수행해야 했던 일부 작업을 간소화할 수 있습니다. Web Forms 모델 바인딩 사용에 대 한 자습서 시리즈를 참조 하세요 모델 바인딩 및 Web Forms합니다.
추가 정보
적용 대상
Eval(Object, String, String)
런타임에 데이터 바인딩 식을 계산하고 결과를 문자열 형식으로 지정합니다.
public:
static System::String ^ Eval(System::Object ^ container, System::String ^ expression, System::String ^ format);
public static string Eval (object container, string expression, string format);
static member Eval : obj * string * string -> string
Public Shared Function Eval (container As Object, expression As String, format As String) As String
매개 변수
- container
- Object
식을 계산할 개체 참조이며, 페이지에 지정된 언어로 표시된 올바른 개체 식별자여야 합니다.
- expression
- String
바인딩된 컨트롤 속성에 포함될 container
개체부터 public 속성 값까지의 탐색 경로이며, C#에서의 Tables[0].DefaultView.[0].Price
또는 Visual Basic에서의 Tables(0).DefaultView.(0).Price
와 같이 마침표로 구분된 속성 또는 필드 이름의 문자열이어야 합니다.
- format
- String
데이터 바인딩 식에서 반환된 Format(String, Object) 인스턴스를 Object 개체로 변환하는, String에 사용되는 것과 유사한 .NET Framework 형식 문자열입니다.
반환
데이터 바인딩 식을 계산하여 문자열 형식으로 변환한 결과인 String 개체입니다.
예제
다음 예제에서는 메서드를 사용하여 Eval
데이터를 제어에 바인딩하는 Repeater 방법을 보여 줍니다. Product라는 데이터 클래스가 필요합니다.
public class Product
{
public int ProductID { get; set; }
public string Name { get; set; }
public double Price { get; set; }
}
Public Class Product
Public Property ProductID As Integer
Public Property Name As String
Public Property Price As Double
End Class
코드 숨김 파일은 테스트 데이터를 로드하고 해당 데이터를 컨트롤에 Repeater 바인딩합니다.
public partial class ShowProducts : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var products = new List<Product>();
products.Add(new Product() { ProductID = 1, Name = "Bike", Price = 150.00 });
products.Add(new Product() { ProductID = 2, Name = "Helmet", Price = 19.99 });
products.Add(new Product() { ProductID = 3, Name = "Tire", Price = 10.00 });
ProductList.DataSource = products;
ProductList.DataBind();
}
}
Public Class ShowProducts
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim products As New List(Of Product)()
products.Add(New Product With {.ProductID = 1, .Name = "Bike", .Price = 150.0})
products.Add(New Product With {.ProductID = 2, .Name = "Helmet", .Price = 19.99})
products.Add(New Product With {.ProductID = 3, .Name = "Tire", .Price = 10.0})
ProductList.DataSource = products
ProductList.DataBind()
End Sub
End Class
컨트롤에 대한 Repeater 선언적 구문에서 매개 변수에 Eval 메서드 container
를 Container.DataItem
사용합니다.
<asp:Repeater ID="ProductList" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Name") %> for only <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>
<br />
<a href='<%# DataBinder.Eval(Container.DataItem, "ProductID", "details.asp?id={0}") %>'>See Details</a>
<br />
<br />
</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="ProductList" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Name") %> for only <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>
<br />
<a href='<%# DataBinder.Eval(Container.DataItem, "ProductID", "details.asp?id={0}") %>'>See Details</a>
<br />
<br />
</ItemTemplate>
</asp:Repeater>
또는 함수를 호출 Eval
하고 매개 변수를 container
포함하지 않을 수 있습니다.
<asp:Repeater ID="ProductList" runat="server">
<ItemTemplate>
<%# Eval("Name") %> for only <%# Eval("Price", "{0:c}") %>
<br />
<a href='<%# Eval("ProductID", "details.asp?id={0}") %>'>See Details</a>
<br />
<br />
</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="ProductList" runat="server">
<ItemTemplate>
<%# Eval("Name") %> for only <%# Eval("Price", "{0:c}") %>
<br />
<a href='<%# Eval("ProductID", "details.asp?id={0}") %>'>See Details</a>
<br />
<br />
</ItemTemplate>
</asp:Repeater>
설명
값 expression
은 public 속성으로 평가되어야 합니다.
.NET Framework 서식 문자열에 대한 자세한 내용은 형식 서식을 참조하세요.
이 메서드는 Visual Studio와 같은 RAD (개발) 디자이너 신속한 애플리케이션에서에서 데이터 바인딩을 만들 때 자동으로 호출 됩니다. 또한 데이터 바인딩 식에서 결과로 변환 Object 하는 데 선언적으로 사용할 수도 있습니다 String. 메서드를 선언적으로 사용하려면 표준 ASP.NET 데이터 바인딩에 사용되는 식 구문을 사용합니다<%# %>
.
이 메서드는 템플릿 목록에 있는 컨트롤에 데이터를 바인딩할 때 특히 유용합니다.
참고
이 메서드는 런타임에 리플렉션을 사용하여 런타임에 늦게 바인딩된 평가를 수행하므로 표준 ASP.NET 데이터 바인딩 구문에 비해 성능이 현저히 느려질 수 있습니다. 특히 문자열 서식이 필요하지 않은 경우 이 메서드를 신중하게 사용합니다.
목록 웹 컨트롤(예: GridView, DetailsViewDataList또는 Repeatercontainer
Container.DataItem
)의 경우 . 페이지에 container
바인딩하는 경우 여야 Page
합니다.
.NET Framework 4.5부터 모델 바인딩을 사용하여 이전 버전의 데이터 바인딩을 통해 수행해야 했던 일부 작업을 간소화할 수 있습니다. Web Forms 모델 바인딩 사용에 대 한 자습서 시리즈를 참조 하세요 모델 바인딩 및 Web Forms합니다.