首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从子实体的网格视图中显示逗号列表

从子实体的网格视图中显示逗号列表
EN

Stack Overflow用户
提问于 2015-10-23 23:16:05
回答 2查看 182关注 0票数 0

我需要在网格单元格中显示子实体类中的N项列表。

我有一个复杂的实体(来自EF6),例如

代码语言:javascript
复制
public partial class DEALER
{
    public DEALER()
    {
        this.DEALER_MODEL = new HashSet<DEALER_MODEL>();
    }

    public int DEALER_KY { get; set; }
    public string DEALER_NAME { get; set; }
    public virtual ICollection<DEALER_MODEL> DEALER_MODEL { get; set; }
}

public partial class DEALER_MODEL
{   
    public int DEALER_MODEL_KY { get; set; }
    public string MODEL_NAME { get; set; }
}

我有一个GridView,我想以逗号字符串的形式显示模型列表。

代码语言:javascript
复制
<asp:GridView ID="DealerGrid" runat="server" CssClass="tx-form"
   EnableViewState="false" AutoGenerateColumns="false" AllowPaging="true"
   PageSize="25" AllowSorting="true" GridLines="None" CellPadding="2" 
   CellSpacing="0" OnSorting="DealerGrid_Sorting"
   OnPageIndexChanging="DealerGrid_PageIndexChanging">
   <HeaderStyle BackColor="#F4F1CD" ForeColor="#003359" Wrap="true" />
      <RowStyle BackColor="#FBF9EB" />
      <AlternatingRowStyle BackColor="#E4DEB0" />
      <PagerStyle HorizontalAlign="Right" />
      <Columns>
         <asp:BoundField DataField="DEALER_KY" Visible="false" />
         <asp:HyperLinkField DataTextField="DEALER_NAME"
            SortExpression="DEALER_NAME"
            DataNavigateUrlFields="DEALER_KY"
            DataNavigateUrlFormatString="~\dealer.aspx?dealerkey={0}"
            HeaderText="Dealer Name" HeaderStyle-HorizontalAlign="Left"
            HeaderStyle-VerticalAlign="Top"
            ItemStyle-Width="10%" ItemStyle-Wrap="false"/>
         <asp:BoundField DataField="DEALER_MODEL" HeaderText="Model"
            HeaderStyle-HorizontalAlign="Left" 
            HeaderStyle-VerticalAlign="Top"/>
   </Columns>

我想展示这样的东西:

Joes,LaCross世纪

代码语言:javascript
复制
        -or -

Joes Auto Acura

商品、商品、商品等

成本-商品-商品

我尝试过一个模板字段/eval,但是它无法工作。

我是asp.net和网格公司的新手,所以温柔点。;)

我不能修改我的类,因为它是由EF自动生成的.

Thx

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-26 14:06:55

其实挺容易的。我创建了一个部分类(因此重载了原始类)并添加了属性。

代码语言:javascript
复制
public partial class DEALER
{
    public string ModelList { 
        get 
        {
            if (MODEL_NAME != null)
            {
                return string.Join(",", DEALER_MODEL.Select(i => i.MODEL_NAME.ToString()).ToArray());
            }
            return "";
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2015-10-24 02:03:55

您可以使用这样的string.Join方法获得逗号分隔字符串:

代码语言:javascript
复制
DealerGrid.DataSource =
    (from d in db.Dealers
     select new
     {
         DEALER_KY = d.DEALER_KY,
         DEALER_NAME = d.DEALER_NAME,
         DEALER_MODEL = string.Join(", ", d.DEALER_MODEL.Select(m => m.MODEL_NAME).ToArray())
     });
DealerGrid.DataBind();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33312769

复制
相关文章

相似问题

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