ASP.NET中的数据绑定,每个文本或值字段具有多个值

时间:2011-03-11 12:18:14

标签: .net asp.net data-binding listbox

db表中包含“Initials”和“LastName”列。我想显示一个ListBox,文本字段如“Smith,J”。有没有内置的方法来实现这个目标?

4 个答案:

答案 0 :(得分:1)

为什么不在从SQL返回数据集时将字段连接成一个字段? (或者你正在使用的RDMBS)。

在数据库服务上进行这种处理比使用.NET进行处理要容易得多。

保持代码更易于维护。

答案 1 :(得分:0)

你可以随心所欲地做到这一点。您可以连接数据库中的列,除了返回原始数据外,还可以创建一个名为“LastNameFirstInitial”的新列。或者,您可以遍历结果集并为每条记录添加新的ListItem,将文本和值设置为您喜欢的列的任意组合。

由于您拥有跨多个列的数据,因此您不必使用“内置方式”,因为您必须在ASP.Net或数据库级别组合这些列。

答案 2 :(得分:0)

使用自定义数据绑定表达式。

考虑:

<%# DataBinder.Eval(Container, "DataItem.lastName") + ", " + DataBinder.Eval(Container, "DataItem.lastName") %>

答案 3 :(得分:0)

我认为你不应该得到解决方案,而是我会给你一个解释:

<uc1:CustomTextBox
        ID="_txtSomeID"
        Text='<%# BindItem.SomeEntity.SomeField +","+BindItem.SomeEntity.SomeField%>'
    runat="server" />

“SomeEntity”是您要获取的表格 和“SomeField”是相应表的列(作为某个实体)

绑定事物的方式完全取决于您,但我建议您使用最新的框架。高级数据绑定(OnNeedDataSource)是旧的,自4.5 .NET Framework以来不推荐使用它。

编辑:另请注意,BindItem是双向绑定,相反,您可以使用Item.SomeEntity.SomeColumn单向执行绑定,以实现可视化目的。另外,如果您使用的是ORM,则应在网格或主表上指定数据源。

此致