DropDownList绑定数据后,选择项始终是第一项,选择别的,输出的还是第一项,求解?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DropDownList绑定数据后,选择项始终是第一项,选择别的,输出的还是第一项,求解?相关的知识,希望对你有一定的参考价值。

我的数据绑定是写在page_load里面的:
if(!IsPostBack)

[数据绑定 ]

参考技术A 当然了,他相当于刷新到了另一个页面,默认肯定是选择第一个,你应该把 [数据绑定 ] 放在IsPostBack里面才行的 参考技术B 写到LoadComplete这个事件里就好了,Load事件每次画面刷新都会执行。你那个判断条件也是要么每次都有效,要么每次都无效,无意义的判断。 参考技术C DropDownList,你要为它指定一个selectedindexchanged事件。用于获取它当前选中的值!
还要为它指定自动回发属性,autopostback 属性 = true
参考技术D 设置DropDownList的自动回发属性(AutoPostBack)为 true就OK了 第5个回答  2011-12-27 Debug一下。你输出的时候是用DropDownList1.SelectedValue吗?

C#中的DropDownList,每次使用选择项目后都会使DropDownList项目溢出

【中文标题】C#中的DropDownList,每次使用选择项目后都会使DropDownList项目溢出【英文标题】:DropDownList in C#, getting DropDownList items overflow after every time using selecting an item 【发布时间】:2009-11-18 21:05:18 【问题描述】:

问题是我试图让 DDL: 1. 从数据库表中接收类别 - 工作 2. OnChange 按 DDL 中的项目从不同的表中选择产品 - 工作 No1有问题,但解决了这个问题。我发现要让 No1 工作,我必须使用回发。做到了,那部分的每一件事都运作良好,实际上每一件事都在运作......但我的拥抱问题(我找不到任何好的答案)是每次我改变项目时,我都会得到所有的时间再次(我有最初的 8 个项目 - 第二时间 16 - 24 等....) 尝试使用:ddlCatagories.Items.Clear(); 当我使用它时,我没有得到任何重复,但是,我没有得到任何东西,它每次都从列表中获取第一个类别,无论我在列表中选择什么.. 过去一周试图弄清楚...请帮助:-)

    public partial class selectNamesFromCatagories : System.Web.UI.Page

    protected void Page_Load(object sender, EventArgs e)
    
        ddlCatagories.Items.Clear();
        SqlDataReader dr = DbHelper.ExecuteReader(
            sqlConn1.home,
            "spSelectNamesFromCatagories");
        while (dr.Read())
        
            ListItem li = new ListItem(dr["CategoryName"].ToString());
            ddlCatagories.Items.Add(li);
        
        dr.Close();
    
    protected void ddlCatagories_SelectedIndexChanged(object sender, EventArgs e)
    
        SqlDataReader dr = DbHelper.ExecuteReader(
                            sqlConn1.home,
                            "spProductsByCatagoryID",
                            new SqlParameter("@catName", ddlCatagories.Text)
                            );
        while (dr.Read())
        
            TableRow tr = new TableRow();
            for (int i = 0; i < dr.FieldCount; i++)
            
                TableCell td = new TableCell();
                td.Text = dr[i].ToString();
                tr.Controls.Add(td);
            
            tblProductsByCatagories.Controls.Add(tr);
        
    

【问题讨论】:

请贴一些代码 :) 【参考方案1】:

仅在第一次加载时通过检查页面是否没有回发来填充 DropDownList。

if (!Page.IsPostBack)

    // Populate list

【讨论】:

【参考方案2】:

我同意 Dan 的观点,如果您有任何启用 ajax 的控件,我也会添加以下内容,因为它们可能会生成回调。

if (!Page.IsPostBack && !Page.IsCallBack)

    // Populate list

【讨论】:

以上是关于DropDownList绑定数据后,选择项始终是第一项,选择别的,输出的还是第一项,求解?的主要内容,如果未能解决你的问题,请参考以下文章

不能在DropDownList 中选择多个项

Grid中的Kendo DropDownList直到选择后才绑定

C#中ComboBox设置DrowDownStyle为DropDownList后怎么设置显示默认值?

MVC4 - 在 DropDownList 中设置最初选择的项目

gridview中用dropdownlist更改值来筛选,更改dropdownlist之后无法进行checkbox选择

Repeater中 DropDownList如何绑定数据