使用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属性以某种方式做到这一点吗?

附言:我不想在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"。希望能有所帮助。

最新更新