【问题标题】:Set label text based on dropdown list selection from datasource根据数据源中的下拉列表选择设置标签文本
【发布时间】:2014-12-11 21:14:51
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    在 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"];
    

    【讨论】:

    • 感谢您的快速回复,但我不相信您正在解决这个问题 - 下拉列表中填充了数据集中的项目编号,我希望将 label1.text 设置为关联的项目名称来自数据集 - 而不是“SelectedItem.Text”(这将是项目编号)
    • 抱歉误会,解决后会更新的:)
    • 请收回您的回复作为答案。
    • 原帖SO
    • System.NullReferenceException: 对象引用未设置为对象的实例... 第 86 行:{ 第 87 行:ListItem item = itemno.Items.FindByValue("itemno");第 88 行:字符串 itemName = item.Attributes["ThirdValue"];第 89 行:Label1.Text = itemName;... 源文件:c:\~\CheckReport.aspx.cs 行:88 堆栈跟踪:[NullReferenceException:对象引用未设置为对象的实例。] ~.CheckReport。 itemno_selectedchanged(Object sender, EventArgs e) in c:\~\CheckReport.aspx.cs:88 System.Web.UI.WebControls.ListControl.OnSelectedIndexChanged(EventArgs e)... 消息被修剪以适应...
    猜你喜欢
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 2016-04-17
    • 2017-05-26
    • 2014-05-24
    • 1970-01-01
    相关资源
    最近更新 更多