首页 > 解决方案 > 如何在一个元素(Gridview)上绑定多个数据?

问题描述

我想在我的网格视图上绑定数据库中的多个属性,所以我有(名字、中间名和姓氏),我想将它们连接到我的网格视图(名称)的一列中

<asp:GridView ID="GV1" runat="server" AutoGenerateEditButton="true" 
    AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Label 
                    ID="edtName" 
                    runat="server" 
                    Text='<%# Bind("Name") %>' 
                />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

那么,我该如何绑定它们呢?我正在使用 Visual Studio 2013,带有 c# 的 asp.net,谢谢。

标签: c#asp.netsql-servervisual-studio

解决方案


有两种方法可以做到这一点:

1) 使用字符串连接

属性上的字符串连接Text不允许使用多种Bind数据绑定方法,因此Eval应在此处使用。

+运营商版本

<asp:TemplateField>
    <ItemTemplate>
        <asp:Label ID="edtName" runat="server" Text='<%# Eval("firstname") %> + ' ' + <%# Eval("middlename") %> + ' ' + <%# Eval("lastname") %>' />
    </ItemTemplate>
</asp:TemplateField>

String.Format 版本

<asp:TemplateField>
    <ItemTemplate>
        <asp:Label ID="edtName" runat="server" Text='<%# String.Format("{0} {1} {2}", Eval("FirstName"), Eval("MiddleName"), Eval("LastName")) %>' />
    </ItemTemplate>
</asp:TemplateField>

2) 使用 AS 别名修改查询

使用COALESCE运算符将​​所有相关字段组合成单个字符串,并给出一个别名,该别名与标签中定义的键相同Bind

SELECT COALESCE(FirstName, '') || COALESCE(MiddleName, '') || COALESCE(LastName, '') AS Name FROM TableName ...

推荐阅读