下拉列表问题 [英] drop down list problems
本文介绍了下拉列表问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是编程新手,我正在尝试使用第一个选定值填充第二个下拉列表。但我似乎不能第二次下载以填充数据
有人能告诉我我哪里出错了吗?
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屋!
查看全文