SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter("select number,departname from departments",sqlConnection1);
DataSet dataSet1 = new DataSet();
sqlDataAdapter1.Fill(dataSet1,"departments");
DropDownList1.DataSource = dataSet1.Tables["departments"].DefaultView;
DropDownList1.DataTextField="departname";
DropDownList1.DataBind();
for(int i=0;i<dataSet1.Tables["maintain"].Row.Count;i++)
{
DropDownList1.Item.Add(dataSet1.Tables["maintain"].Rows[i][department"].ToString().Trim());
}
DataSet dataSet1 = new DataSet();
sqlDataAdapter1.Fill(dataSet1,"departments");
DropDownList1.DataSource = dataSet1.Tables["departments"].DefaultView;
DropDownList1.DataTextField="departname";
DropDownList1.DataBind();
for(int i=0;i<dataSet1.Tables["maintain"].Row.Count;i++)
{
DropDownList1.Item.Add(dataSet1.Tables["maintain"].Rows[i][department"].ToString().Trim());
}
DataSet dataSet1 = new DataSet();
sqlDataAdapter1.Fill(dataSet1,"departments");
for(int i=0;i<dataSet1.Tables["maintain"].Row.Count;i++)
{
DropDownList1.Item.Add(dataSet1.Tables["maintain"].Rows[i][department"].ToString().Trim());
}
DataSet dataSet1 = new DataSet();
sqlDataAdapter1.Fill(dataSet1,"maintain");
for(int i=0;i<dataSet1.Tables["maintain"].Row.Count;i++)
{
DropDownList1.Item.Add(dataSet1.Tables["maintain"].Rows[i]["department"].ToString().Trim());
}
举个例子:一个在线报修(电脑);用户填写报修基本信息的页面中DropDownList是用户选择所在部门(所在部门是用数据库中department表中绑定的);如果用户需要修改报修的话,在修改页面中,先绑定了DropDownList,然后把用户先前报修所选部门在赋值给DropDownList,这样DropDownList的第一个部门就会被用户以前所选部门覆盖,如果用户想选择第一个部门就选择不了。
有什么办法,就是在修改页面,绑定数据后,通过报修基本信息输出的部门在DropDownList中不是覆盖第一个部门而是第一个部门和用户所选部门所在位子交换;部分代码如下:
SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter("select number,departname from departments",sqlConnection1);
DataSet dataSet1 = new DataSet();
sqlDataAdapter1.Fill(dataSet1,"departments");
DropDownList1.DataSource = dataSet1.Tables["departments"].DefaultView;
DropDownList1.DataTextField="departname";
DropDownList1.DataBind();
然后把用户报修信息中部门赋值给DropDownList1:如下:
SqlDataAdapter sqlDataAdapter2 = new SqlDataAdapter("select * from maintain",sqlConnection1);
DataSet dataSet2 = new DataSet();
sqlDataAdapter2.Fill(dataSet1,"departments");
Textbox1.text = dataSet2.Tables["maintain"].Rows[0]["username"].ToString();
Textbox2.text = dataSet2.Tables["maintain"].Rows[0]["gongsi"].ToString();
.......
DropDownList1.SelectedItem.Text = dataSet2.Tables["maintain"].Rows[0]["department"].ToString();
这样就会把开始绑定的第一向给覆盖掉,不知道有什么办法把后面从报修基本信息中得到的部门赋值给DropDownList1,然后在DropDownList1把第一向和用户先前所选这一项,在DropDownList1中所在的位置交换。那样就不会覆盖掉任何一项
{
if(用户先前报修所选部门==li.Value)
li.Selected=true;
}
DropDownList3.SelectedItem.Text = Ctype(TextBox1.Text, DateTime).DayOfWeek;
this.Calendar1.Visible = false;
ListItem itemTop = new ListItem();
itemTop.Text = "请选择";
itemTop.Value = "请选择";
ddlxxx.Items.Insert(0,itemTop);
这样他就可以选第一个了!
ddlxxx.SelectedIndex = ddlxxx.Items.IndexOf(ddlxxx.Items.FindByText(dataSet1.Tables["maintain"].Rows[0]["department"].ToString()))
ListItem oSelectedItem=DDLUnit.Items.FindByValue(m_oUser["UnitID"].ToString());
if(oSelectedItem!=null)
{
oSelectedItem.Selected=true;
}
//方法2
this.CheckUnitExit(UnitName);ListItem oItem=DDLUnit.Items.FindByValue(m_oUser["UnitID"].ToString());
this.DDLUnit.SelectedIndex=this.DDLUnit.Items.IndexOf(oItem);
///检查单位是否已经在数据表里
private void CheckUnitExit(string UnitName)
{
//oDS是获取到的数据集,每个人的实现方法不一样,所以我解释一下
string Sql = string.Format("select * from Flow_UnitBasic where UnitName='{0}'", UnitName);
DataSet oDS = DBTools.GetDataSetBySQL(Sql);
if(oDS.Tables[0].Rows.Count<=0)
{
this.DDLUnit.Items.Insert(0,UnitName);
}
}