代码之家  ›  专栏  ›  技术社区  ›  Etienne

无法在代码中获取DropDownList的文本-可以获取值,但不能获取文本

  •  12
  • Etienne  · 技术社区  · 15 年前

    我正在使用ASP.NET 3.5

    我有一个名为lstnastry的下拉列表,其中包含如下项:

    <asp:ListItem Value="United States">Canada</asp:ListItem> 
    

    这将显示加拿大,但代码中的值将为“美国”。如何在代码中检索值“canada”?

    我试过了所有这些,所有的都回到了“美国”

    lstCountry.Text
    lstCountry.SelectedValue
    lstCountry.SelectedItem.Text
    

    我的下拉列表:

     <asp:DropDownList ID="lstCountry" runat="server" Width="200px">
                  <asp:ListItem>Please Select</asp:ListItem>
      <asp:ListItem>United States</asp:ListItem>
      <asp:ListItem Value="United States">Canada</asp:ListItem>
     </asp:DropDownList>
    

    如何读取代码中的值:

        Dim country As String
        country = lstCountry.SelectedItem.Text
    
    7 回复  |  直到 9 年前
        1
  •  30
  •   Muhammad Akhtar    15 年前

    添加列表使用

    <asp:ListItem Value="United States" Text="Canada"></asp:ListItem>
    

    然后尝试

    DropDownList1.SelectedItem.Text
    

    我发现了你的错误。

    <asp:ListItem>United States</asp:ListItem> 
    

    将此更改为

    <asp:ListItem>United States1</asp:ListItem> 
    

    然后你会得到实际值。

    问题是,下拉列表中有两个相同的值,当页面回发时,它将第一个值作为所选值并给出相应的结果。如果您注意到在选择回发美国值后

        2
  •  3
  •   Robert Mars_win    10 年前

    AppendDataBoundItems="true" 需要设置。

        3
  •  0
  •   Arsen Mkrtchyan    15 年前

    尝试

    lstCountry.SelectedItem.Text
    
        4
  •  0
  •   Himadri    15 年前

    你可以试试

    lstCountry.SelectedItem.Text
    
        5
  •  0
  •   rahul    15 年前

    怎么样

    lstCountry.Items[lstCountry.SelectedIndex].Text;
    
        6
  •  0
  •   Tom    14 年前

    看看这里,这里有一个概念验证页面和演示,您可以从下拉列表中获得任何东西: asp:DropDownList Control Tutorial Page

        7
  •  0
  •   Dameon    9 年前

    有同样的问题,我刚刚解决了它,我使用了字符串[变量名称]=DropDownList1.SelectedItem.Text;