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

本文关键字:选择 设置 标签 文本 下拉列表 数据源 | 更新日期: 2023-09-27 18:34:03

我一直无法找到看似简单的共同目标的解决方案 - 我想从下拉列表中选择一个项目编号并设置相邻的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>...

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

ItemName 设置为 ListItem 中的 ThirdValue 属性

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

获取项名称的值

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