首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在网格视图控件中显示导航属性?

问如何在网格视图控件中显示导航属性?
EN

Stack Overflow用户
提问于 2011-10-16 18:00:32
回答 1查看 559关注 0票数 1

我想在网格视图控件中显示导航属性的字段值。我的实体是相册和照片,照片实体必须与相册实体相关联。

我想显示唱片集的名称,但它从来没有显示在网格视图控件中。

以下是我的标记:

代码语言:javascript
复制
<h4>
    <asp:DropDownList ID="ddlAlbums" runat="server" Style="padding: 3px; width: 150px;"
        AutoPostBack="True">
    </asp:DropDownList>

</h4>
<br />
<asp:UpdatePanel ID="pnlPhotos" runat="server" >
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="ddlAlbums" />
    </Triggers>
    <ContentTemplate>
        <asp:DataList ID="PhotosDataList" runat="server" DataKeyField="PhotoID" DataSourceID="PhotosEntityDataSource"
            RepeatDirection="Horizontal" CssClass="view" RepeatColumns="5" 
            onitemdatabound="PhotosDataList_ItemDataBound">
            <ItemTemplate>
                <asp:Image ID="img" CssClass="thumbnail" ToolTip='<%#Eval("Title")%>' runat="server"
                    ImageUrl='<%#Eval("Caption","~/Uploads/Pictures/{0}")%>' />
                <br />
            **<asp:Label ID="lblAlbumName" runat="server" Text='<%#Eval("Album.Name")%>'></asp:Label>**

                <asp:LinkButton ID="lnkEdit" runat="server" CommandName="Select" CommandArgument='<%#Eval("PhotoID")%>'
                    OnClick="lnkEdit_Click">edit</asp:LinkButton>&nbsp;
                <asp:LinkButton ID="lnkDelete" runat="server" CommandArgument='<%#Eval("PhotoID")%>'
                    OnClick="DelPhoto_Click">delete</asp:LinkButton>
            </ItemTemplate>

        </asp:DataList>
    </ContentTemplate>
</asp:UpdatePanel>
<asp:EntityDataSource ID="PhotosEntityDataSource" runat="server" ContextTypeName="Misagh.DAL.MisaghSchoolEntities"
    EnableDelete="True" EntitySetName="Photos" Where="it.AlbumID = @AlbumID">
    <WhereParameters>
        <asp:ControlParameter ControlID="ddlAlbums" DefaultValue="0" DbType="Int32" PropertyName="SelectedValue"
            Name="AlbumID" />
    </WhereParameters>
</asp:EntityDataSource>

我真的很希望能帮上忙

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-10-16 23:23:59

你已经处理过OnItemDataBound了。您可以简单地这样做:

代码语言:javascript
复制
protected void PhotosDataList_ItemDataBound(Object sender, DataListItemEventArgs e)
{
 if (e.Item.ItemType == ListItemType.Item || 
             e.Item.ItemType == ListItemType.AlternatingItem)
 {
     // Retrieve the Label control in the current DataListItem.
     Label albumName = (Label)e.Item.FindControl("lblAlbumName");
     albumName.Text = (e.Item.DataItem as ICustomTypeDescriptor).GetPropertyOwner(null).Album.Name;
 }
}

并在标记的EntityDataSource声明中设置EnableFlattening="true"

阅读有关相关主题here.的更多信息

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7783574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档