在Gridview的BoundField中显示多个数据字段

时间:2012-02-01 14:15:13

标签: c# asp.net

我有一个绑定的asp:GridView。在这里我有多列,我试图将两个数据库字段中的数据连接成一个字段。

怎么做?

这样的东西?

asp:BoundField DataField="field1 + ' ' + field2" HeaderText="Status" SortExpression="info"

4 个答案:

答案 0 :(得分:23)

非常确定你需要使用TemplateField而不是BoundField。

在GridView列栏中:

    <asp:TemplateField HeaderText="Name">
        <ItemTemplate>
            <%# Eval("FirstName") + " " + Eval("LastName")%>
        </ItemTemplate>
    </asp:TemplateField>

答案 1 :(得分:14)

为了完整起见,因为我搜索了一个解决方案并先来到这里......

使用string.Format()

可以获得更大的灵活性
<asp:TemplateField HeaderText="Status">
 <ItemTemplate>
     <%# string.Format("{0} {1}", Eval("field1") ,Eval("field2"))%>
 </ItemTemplate>
</asp:TemplateField>

在这里,您还可以使用string.Format()的强大功能来格式化日期和数字类型,如下所示:https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types

样品:

<%# String.Format("{0:MM/dd/yyyy} - {1:N2}", Eval("dateValue1"), Eval("decimalValue2")) %>

另一个选择是使用代码隐藏的自定义方法

ASPX:

<asp:TemplateField HeaderText="Status">
   <ItemTemplate>
      <asp:Label runat="server" Text='<%#GetStatus(Eval("Status1"),Eval("Status2")) %>'>
      </asp:Label>
   </ItemTemplate>
</asp:TemplateField>

代码隐藏:

public string GetStatus(object Status1, object Status2)
{
    return (string)Status1 + " " + (string)Status2;
}

答案 2 :(得分:1)

ToolTip='<%# Eval("LastName") & "-" & Eval("FirstName") %>'

答案 3 :(得分:0)

试试这样。 如果你正在使用两个数据集make到一个数据表并将其绑定到gridview。

<asp:BoundField DataField="<%# DataBinder.Eval(Container.DataItem, "f1")%>+ ' ' + <%# DataBinder.Eval(Container.DataItem, "f2")%>" HeaderText="Status" SortExpression="info"/>