c# - 如何在一个元素(Gridview)上绑定(bind)多个数据?

标签 c# asp.net sql-server visual-studio

我想在 GridView 上绑定(bind)数据库中的多个属性,因此我有(名字、中间名和姓氏),并且我想将它们连接到 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>

那么,我该如何绑定(bind)它们呢? 我正在使用 Visual Studio 2013、asp.net 和 C#,谢谢。

最佳答案

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

1) 使用字符串连接

Text 属性上的字符串连接不允许使用多个 Bind 方法进行数据绑定(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 operator将所有相关字段组合成单个字符串,并给出一个与标签的 Bind 中定义的键相同的别名:

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

关于c# - 如何在一个元素(Gridview)上绑定(bind)多个数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51703876/

相关文章:

javascript - 无法更改 html 选择 JavaScript 中的选定值

c# - 无法调用动态按钮上的 Click 事件

sql-server - SQL Server - 查询缺少命名空间的 XML 列

SQL 服务器 : group by a function on a field an select that

c# - EF 代码优先 : Multiplicity constraint violation

C# 强制 ListBox 更新元素

c# - 如何在迭代时从通用列表中删除元素?

C# XAML - 获取 XAML 内容属性 (contentControl.Content)

ASP.NET 4.0 菜单控件 - 为什么呈现的 <div> 元素不像普通 block 元素那样工作并填满其父元素的宽度?

sql - 如何在存储过程中使用可选参数