db表中包含“Initials”和“LastName”列。我想显示一个ListBox,文本字段如“Smith,J”。有没有内置的方法来实现这个目标?
答案 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,则应在网格或主表上指定数据源。
此致