根据数据源中的下拉列表选择设置标签文本

时间:2014-12-11 21:14:52

标签: c# asp.net drop-down-menu label dropdownlistfor

我无法找到似乎是一个简单的共同目标的解决方案 - 我想从下拉列表中选择一个项目编号,并设置一个相邻的label1.text来显示相关的项目名称。项目编号和项目名称从填充下拉列表的对象数据源查询和数据集返回。下拉列表DataTextField和DataValuefield值设置为项目编号,因为项目编号是显示的内容以及用于向存储过程调用提供参数以填充表单上的数据的内容。

我可以找到的所有示例都使用第二个查询到数据库,并使用下拉列表选择项目编号作为查询的参数来获取关联的项目名称并填充label1.text,或将label1.text设置为下拉选定的值(在这种情况下,项目编号不是项目名称)。我希望能够在没有第二次查询数据库的情况下完成此操作,因为项目名称值已经在用于填充下拉列表项目编号的数据集表中。

我希望以某种方式我必须得到下拉列表选项并使用它来从数据集中提取相关的名称值。但是如何?

代码摘录如下:

...<asp:DropDownList ID="itemno" runat="server" DataSourceID="ObjectDatasource4" DataTextField="itemno" DataValueField="itemno" AppendDataBoundItems="true" OnSelectedIndexChanged="itemno_selectedchanged" Width="65" TabIndex="4">
                        <asp:ListItem Value="ALL" Selected="True">ALL</asp:ListItem>
                    </asp:DropDownList><asp:Label ID="Label1" runat="server" />...

and ...<asp:ObjectDataSource ID="ObjectDataSource4" runat="server" SelectMethod="GetData" TypeName="DepositLookup.App_Code.Dataset1TableAdapters._itemnoTableAdapter">
            <SelectParameters>
                <asp:SessionParameter SessionField="accesslevel" DefaultValue="" Name="usraccess" Type="String" />
            </SelectParameters>...

1 个答案:

答案 0 :(得分:0)

在ListItem中将ItemName设置为ThirdValue属性

<asp:DropDownList ID="ddlDropDown" runat="server">
    <asp:ListItem Text="ItemID" Value="ItemID" ThirdValue="ItemName" />
</asp:DropDownList>

获取ItemName的值

ListItem item = ddlDropDown.Items.FindByValue("ItemID");
string itemName = item.Attributes["ThirdValue"];