我想在 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/