在DropDownList中显示多个值并以编程方式访问值

时间:2012-10-24 10:09:13

标签: c# asp.net combobox

我有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>

的LinqDataSource

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

</asp:LinqDataSource>

MyView的:

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

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

description1 32

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

我也可以直接在LinqDataSource中完成数据分组。无论什么有效。

2 个答案:

答案 0 :(得分:1)

使用ListControl.AppendDataBoundItems属性:

AppendDataBoundItems Documentation

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

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

答案 1 :(得分:1)

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

我的SQL需要抛光,但如果我没记错的话就是这样:

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

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