下拉列表问题 [英] drop down list problems

查看:135
本文介绍了下拉列表问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是编程新手,我正在尝试使用第一个选定值填充第二个下拉列表。但我似乎不能第二次下载以填充数据

有人能告诉我我哪里出错了吗?

I am new to programming and am trying to fill the 2nd drop down using selected value of the first. But I cant seem to the second drop down to fill with data
Can someone show me where I am going wrong?

protected void Page_Load(object sender, EventArgs e)
        {
            {
                DataTable dt = new DataTable();
                OleDbConnection readData =
                    new OleDbConnection( System.Configuration.ConfigurationManager.ConnectionStrings["ExceptionReportConnection"].ConnectionString);

                readData.Open();
                var objcomand = new OleDbCommand(
                    "SELECT DISTINCT COMPANY FROM GENLIBLE.MANAGERS ORDER BY COMPANY", readData);
                objcomand.CommandType = CommandType.Text;
                OleDbDataAdapter adp = new OleDbDataAdapter(objcomand);
                adp.Fill(dt);
                readData.Close();
                ddCompany.DataSource = dt;

                ddCompany.DataValueField = "COMPANY";

                ddCompany.DataTextField = "COMPANY";

                ddCompany.DataBind();

                ddCompany.Items.Insert(0, new ListItem("--Select--", "0"));
                ddOffice.Items.Insert(0, new ListItem("--Select--", "0"));
                ddDepartment.Items.Insert(0, new ListItem("--Select--", "0"));
                ddType.Items.Insert(0, new ListItem("--Select--", "0"));

                if (ddCompany.SelectedValue == "0")
                {
                    ddOffice.Items.Clear();
                    ddOffice.Items.Insert(0, new ListItem("--Select--", "0"));
                }
            }
        }

        protected void ddCompany_OnSelectedIndexChanged(object sender, EventArgs e)
        {
                DataTable dt = new DataTable();
                var readData1 =
                    new OleDbConnection(
                        System.Configuration.ConfigurationManager.ConnectionStrings["ExceptionReportConnection"]
                            .ConnectionString);
                readData1.Open();
                ddCompany.Items.Clear();

                string s = ddOffice.SelectedValue;
                var objCommand = new OleDbCommand(
                    "SELECT DISTINCT OFFICE FROM GENLIBLE.MANAGERS " +
                    "WHERE COMPANY = '" + ddCompany.SelectedItem.Value + "'");
                
                objCommand.CommandType = CommandType.Text;
                OleDbDataAdapter adp = new OleDbDataAdapter(objCommand);
                adp.Fill(dt);
                readData1.Close();
            
                ddOffice.DataSource = dt;

                ddOffice.DataValueField = "OFFICE";

                ddOffice.DataTextField = "OFFICE";

                ddOffice.DataBind();
                ddOffice.Items.Insert(0, new ListItem("Please Select", ""));
                if (ddOffice.SelectedValue == "0")
                {
                    ddDepartment.Items.Clear();
                    ddDepartment.Items.Insert(0, new ListItem("--Select--", "0"));
                }
            }
        }

推荐答案

根据与OP的讨论,

1st DropDownList的AutoPostBack [< a href =http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.autopostback.aspxtarget =_ blanktitle =New Window> ^ ] property未设置为true。这就是改变它的原因。将其设置为true解决了问题。
Based on the discussion with the OP,
1st DropDownList's AutoPostBack[^] property was not set to true. That is why nothing was happening on changing it. Setting it to true solved the issue.


只检查ddCompany的autoPostback属性

如果你还没有设置然后在aspx页面中将其设置为AutoPostback =true



和你的页面加载事件

写下你所有的业务逻辑如下

just check autoPostback property of ddCompany
if you have not set then set it as AutoPostback="true" in aspx page

and in your page load event
write all your bussiness logic as below
protected void Page_Load(object sender, EventArgs e)
        {
if(!Ispostback)
{
//your code;
}
}


这篇关于下拉列表问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆