2

我有 DropDownList 这看起来像这样:

<asp:DropDownList ID="ddl1" runat="server" AutoPostBack="True" DataSourceID="lds1"
                                 DataTextField="Description" DataValueField="Description" Height="22px" OnSelectedIndexChanged="ddl1_SelectedIndexChanged"
                                Width="339px" ondatabound="ddl1_DataBound">                                    
</asp:DropDownList>

Linq 数据源

<asp:LinqDataSource ID="lds1" runat="server" ContextTypeName="MyDataContext"
                                TableName="MyView" > 

</asp:LinqDataSource>

我的观点:

SELECT     Description, COUNT(*) AS Quantity
FROM         MyTable
GROUP BY Description

在下拉列表中,我想显示如下数据:

描述1 32

其中 description1 是 MyView.Description 中的字符串,32 是 MyView.Quantity 中的整数。而且我需要能够以编程方式访问所选下拉项目的数量。

我也可以直接在 LinqDataSource 中对数据进行分组。什么都行。

4

2 回答 2

1

使用 ListControl.AppendDataBoundItems 属性:

AppendDataBoundItems 文档

从文档中:“AppendDataBoundItems 属性允许您在数据绑定发生之前将项目添加到 ListControl 对象。数据绑定后,项目集合包含来自数据源的项目和先前添加的项目。”

使用SelectedValue 属性以编程方式访问数量。

于 2012-10-24T10:13:54.497 回答
1

您是否尝试过在 SQL 级别连接结果,将结果分配给您自己的变量并在下拉列表中使用它?

我的 SQL 需要完善,但如果我没记错的话是这样的:

SELECT field1 + ' -' + CONVERT(NVARCHAR, field2) as DisplayValue

然后,您将在下拉框中显示 DisplayValue。

于 2012-10-24T10:19:21.910 回答