使用DataTextField属性进行列表框格式化

时间:2011-06-06 06:09:36

标签: asp.net listbox-control datatextfield

我的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属性以某种方式执行此操作吗?

PS:我不想在cs文件中这样做。我想要一些aspx中的东西。

提前致谢。

4 个答案:

答案 0 :(得分:0)

如果您不想在后面的代码中执行此操作,则可以在SQL查询中获取First Name + Last Name。 e.g ...

Select ([First Name] + [Last Name]) as [First Name],... from TableName

答案 1 :(得分:0)

您可以尝试将公共属性添加到 TreatmentProviderBO ,如下所示

public String FullName
{
    get { return FirstName + " " + LastName ;}
}

您可以将DataTextField设置为FullName。

如果您无法编辑BO,我认为您可以使用扩展方法,但我不确定您是否可以为DataTextField提供方法名称。你可以试试。

答案 2 :(得分:0)

这篇文章对你有帮助吗?

Bind drop down list with Dictionary

我认为你也可以使用匿名类型。

答案 3 :(得分:0)

如果您不想更改查询,因为您坚持使用LINQ,请尝试以下

  var aa = (from Varible in Collection select new { name = Varible.FirstName + Varible.LastName }).ToList();

现在将DataTextField属性设置为“name”。希望它有所帮助。