我的aspx页面中有一个列表框:
<asp:ListBox ID="lstTreatmentProvider" runat="server" SelectionMode="Multiple" Width="175px"
Height="81" CssClass="SingleColumnlist" DataSourceID="dtsTreatmentProviders" DataTextField="FirstName" DataValueField="ServiceId"></asp:ListBox>
我正在使用列表框的数据源:
<asp:ObjectDataSource ID="dtsTreatmentProviders" runat="server" SelectMethod="GetAllTreatmentProviders"
TypeName="Pc.PrecisionCare2.BLL.Administration.TreatmentProvider.TreatmentProviderBO"
SortParameterName="sortExpression"></asp:ObjectDataSource>
正如你所看到的,我在列表框中使用DataTextField="FirstName"
,因为我的数据源返回了治疗提供者的一些数据,包括名字、姓氏等。
我想让我的列表框包含First Name + Last Name
。我可以使用DataTextField属性以某种方式做到这一点吗?
附言:我不想在cs文件中这样做。我想要aspx中的一些内容。
提前谢谢。
如果您不想在代码隐藏中获取First Name + Last Name
,则可以在SQL查询中获取。例如
Select ([First Name] + [Last Name]) as [First Name],... from TableName
您可以尝试将Public属性添加到您的TreatmentProviderBO中,如下所示
public String FullName
{
get { return FirstName + " " + LastName ;}
}
您可以将DataTextField设置为FullName。
如果你不能编辑BO,我认为你可以使用扩展方法,尽管我不太确定你是否可以给DataTextField一个方法名。你可以试试。
这篇文章对你有帮助吗?
使用字典绑定下拉列表
我想你也可以使用匿名类型。
如果您坚持使用LINQ而不想更改查询,请尝试以下
var aa = (from Varible in Collection select new { name = Varible.FirstName + Varible.LastName }).ToList();
现在将DataTextField属性设置为"name"。希望能有所帮助。