2011-05-17 5 views
1

J'ai la ListView suivante:Comment utiliser GetIndexedPropertyValue?

<asp:ListView ID="lv_Announcements" runat="server"> 
    <LayoutTemplate> 
     <asp:PlaceHolder ID="itemPlaceHolder" runat="server" /> 
    </LayoutTemplate> 
    <ItemTemplate> 
       <a href="<%# Eval("Title") %>"><%# Eval("Title") %></a><br /> 
       <%# DataBinder.GetIndexedPropertyValue(Fields, "[\"Body\"]")%><br /><br /> 
    </ItemTemplate> 
</asp:ListView> 

Dans mon code derrière je fais ceci:

  lv_Announcements.DataSource = cur.Web.Lists["Announcements"].Items; 
      lv_Announcements.DataBind(); 

Items est un SPListItemCollection. Quand jamais je cours mon code j'obtiens l'erreur suivante:

The name 'Fields' does not exist in the current context

Devrais-je faire quelque chose différemment ici?

Répondre

1

je fini par faire comme ceci:

<%# DataBinder.GetIndexedPropertyValue(Container.DataItem, "[\"Body\"]")%> 

DataItem est le SPListItem que la ligne est liée à si vous pouvez penser comme ceci:

SPListItem myItem = //whatever; 
myItem["Body"]; 

Avant qu'il aurait été comme ceci:

SPListItem myItem = //whatever; 
myItem.Fields["Body"]; 

Qui ne retourne pas l'information que je voulais.