【问题标题】:dropdownlist not selecting the correct index下拉列表未选择正确的索引
【发布时间】:2013-04-12 13:12:41
【问题描述】:

我有一个数据库绑定下拉列表,它从数据库中获取其值。

当我将 ddl.SelectedItem 称为 .Text 或 .Value 时,索引不正确。

假设数据库表中的值是这样的:

Column1 | Column2

Dublin1 | Value1
Dublin2 | Value1
Dublin3 | Value1
London1 | Value2
London2 | Value2
London3 | Value2

SQL 选择查询:

SELECT [Column1],[Column2] FROM [Table] ORDER BY [Column1]

DDL:

<asp:DropDownList runat="server" ID="ddl" 
 DataSourceID="SQLDataSource" DataTextField="Column1" 
 DataValueField="Column2"></asp:DropDownList>

仅在 ASPX 上绑定:

<asp:SqlDataSource ID="SQLDataSource" runat="server" 
      ConnectionString="<%$ConnectionStrings:DatabaseConnectionString %>" 
      SelectCommand="SELECT [Column1],[Column2],FROM [Table] ORDER BY [Column1]">
</asp:SqlDataSource>

因此,当我从下拉列表中获取 Selected Item 时,无论我选择 Dublin2 还是 Dublin3,它总是返回 Dublin1,与 London 值相同。

ddl 为 item.text 和 item.value 正确填充。

关于边界我需要设置什么吗?

【问题讨论】:

  • 你能用ddl.SelectedItem添加服务器端代码吗?
  • TextItems 和 ValueItems 是否唯一?
  • 好吧,这看起来很奇怪,如果您提供更多服务器端代码,我们可以帮助您:)
  • SELECT [Column1],[Column2] FROM [Table] ORDER BY [Column1] 这是给出正确的值还是重复?
  • 你必须清除选中的项目

标签: c# asp.net sql html-select


【解决方案1】:

我认为下拉列表中的值必须是唯一的,并且Column2 具有重复值。您应该修改数据绑定以在文本和值上都使用Column1

<asp:DropDownList runat="server" ID="ddl" 
 DataSourceID="SQLDataSource" DataTextField="Column1" 
 DataValueField="Column1"></asp:DropDownList>

然后在访问代码后面,您需要一个表的副本并像这样访问它以获取值:

Dictionary<string, string> table = //Get the table here with Column1 as keys    
table[ddl.SelectedItem.Value]

【讨论】:

    【解决方案2】:

    您是否正在检查 Page_Load 中的 IsPostBack 。

    if (!IsPostBack)
    {  
        BindDropDownListddl();      
    }
    

    同时为您的下拉列表设置 AutoPostBack 为 true。

    <asp:DropDownList runat="server" ID="ddl" 
     DataSourceID="SQLDataSource" DataTextField="Column1" 
     DataValueField="Column2" AutoPostBack="true" ></asp:DropDownList>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多