Задать текст метки на основе выбора раскрывающегося списка из источника данных

Я не смог найти решение, которое казалось бы простой общей целью - я хочу выбрать номер элемента из выпадающего списка и установить смежный 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 ответ

Устанавливает ItemName в свойство ThirdValue в ListItem

<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"];
Другие вопросы по тегам