简体   繁体   English

从ASP.NET C#中的数据库设置数据时,下拉所选索引已更改的事件触发

[英]dropdown selected index changed event fires while setting data from database in asp.net c#

I have dropdown inside update panel showing some list. 我在更新面板中显示了一些下拉列表。 When I select dropdown item, selected index changed event fires to populate other dropdown and data is saved and displayed in grid on submit. 当我选择下拉菜单项时,选定的索引更改事件将触发以填充其他下拉菜单,并且数据将保存并在提交时显示在网格中。 When I select grid row to edit, dropdown is set with database data. 当我选择要编辑的网格行时,将使用数据库数据设置下拉列表。 Now all things work fine. 现在一切正常。 But when I select other control with postback, selected index changed event of that dropdown fires without selecting item and resets other dropdown with data to index 0. Why this event fires without selecting dropdown? 但是,当我选择具有回发功能的其他控件时,该下拉列表的选定索引更改事件将在不选择项目的情况下触发,并且将其他下拉列表的数据重置为索引0。为什么在未选择下拉列表的情况下触发该事件? Please help. 请帮忙。

<asp:DropDownList ID="ddl" runat="server" AutoPostBack="True" 
OnSelectedIndexChanged="ddl_SelectedIndexChanged">
</asp:DropDownList>

protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
     Fillddl();
}
public void Fillddl()
{
    try
    {
        DataSet ds_ddl = _BLL.get_AllItems(ddl.SelectedValue);
        if (ds_ddl != null)
        {
            if (ds_ddl .Tables[0].Rows.Count > 0)
            {
                ddl2.DataSource = ds_ddl.Tables[0].DefaultView;
                ddl2.DataTextField = "NAME";
                ddl2.DataValueField = "ID";
                ddl2.DataBind();
            }
        }
        ddl2.Items.Insert(0, new ListItem("Select", "0"));
        ddl2.Dispose();
    }
    catch { }
}

use 采用

if(!Postback)
{
    // Insert your code
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM