我有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中完成数据分组。无论什么有效。
答案 0 :(得分:1)
使用ListControl.AppendDataBoundItems属性:
AppendDataBoundItems Documentation
从文档:“AppendDataBoundItems属性允许您在数据绑定发生之前将项目添加到ListControl对象。数据绑定后,项目集合包含数据源中的项目和以前添加的项目。”
使用SelectedValue property以编程方式访问数量。
答案 1 :(得分:1)
您是否尝试在SQL级别连接结果,将结果分配给您自己的变量并在下拉列表中使用它?
我的SQL需要抛光,但如果我没记错的话就是这样:
SELECT field1 + ' -' + CONVERT(NVARCHAR, field2) as DisplayValue
然后,您将在下拉框中显示DisplayValue。