저는 ASP.Net 2.0에서 Databinding을 사용하고 있으며 Eval 명령과 관련된 문제가 있습니다.DataBinding에서 사용하기 위해 개체에 ToString을 재정의하십시오.
은 내가 데이터 바인딩 해요 클래스를 가지고, 그것은 다음과 같습니다
public class Address
{
public string Street;
public string City;
public string Country;
public new string ToString()
{
return String.Format("{0}, {1}, {2}", Street, City, Country);
}
}
그리고 다른 클래스 (I가 데이터 바인딩 해요 하나) : 때
public class Situation
{
public Address ObjAddress;
public string OtherInformation;
}
지금을, I 데이터 바인딩 된 컨트롤을 가지고있다.
<asp:DetailsView ID="dvSituation" DataSourceID="dataSourceThatPullsSituations" AutoGenerateRows="false"runat="server">
<EmptyDataTemplate>
No situation selected
</EmptyDataTemplate>
<Fields>
<asp:BoundField HeaderText="Other data" DataField="OtherInformation" />
<asp:TemplateField>
<HeaderTemplate>
Address
</HeaderTemplate>
<ItemTemplate>
<%-- This will work --%>
<%# ((Situation)Container.DataItem).ObjAddress.ToString() %>
<%-- This won't --%>
<%# Eval("ObjAddress") %>
</ItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
이 필드가 평가 될 때 내 ToString() 클래스가 호출되지 않는 이유는 무엇입니까? 그 eval이 실행될 때 형식 이름을 얻습니다. 사용하는 대신