Моя проблема заключается в том, что, когда я нажимаю на одно окно списка, другое окно списка должно отображаться с динамически связанными значениями.Отображается список, но событие списка не запускается.Событие lb_SelectedIndexChanged
не запускается.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlCommand com = new SqlCommand("select EmpId,EmpName from OrgChart where ManagerID=0", con);
con.Open();
SqlDataReader dr = com.ExecuteReader();
int i=0;
while (dr.Read())
{
empid[i] = Convert.ToInt32(dr[0].ToString());
ename[i] = dr[1].ToString();
i++;
}
for(int j=0;j<i;j++)
ListBox1.Items.Add(empid[j]+"-"+ename[j]);
ListBox1.Items.Add("create new");
}
}
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Table1.Visible =false;
Table2.Visible = false;
string comand = ListBox1.SelectedValue.ToString();
if (comand == "create new")
{
Table1.Visible = true;
}
else
{
Table2.Visible = true;
string[] emp = comand.Split('-');
getdetails(Convert.ToInt32(emp[0]));
}
}
static ListBox lb = new ListBox();
void getdetails(int empid)
{
managerid = empid;
con.Open();
com = new SqlCommand("select EmpId,EmpName from OrgChart where ManagerID=" + managerid + "", con);
dr = com.ExecuteReader();
lb.ID = "lb1";
lb.AutoPostBack = true;
while (dr.Read())
{
lb.Items.Add(dr[0].ToString() + "-" + dr[1].ToString());
}
lb.Items.Add("create new");
lb.SelectedIndexChanged += new EventHandler(this.lb_SelectedIndexChanged);
this.Controls.Add(lb);
}
void lb_SelectedIndexChanged(object sender, EventArgs e)
{
Table1.Visible = false;
Table2.Visible = false;
getdetails(managerid);
string comand = ((ListBox)sender).SelectedValue.ToString();
if (comand == "create new")
{
Table1.Visible = true;
}
else
{
Table2.Visible = true;
string[] emp = comand.Split('-');
getdetails(Convert.ToInt32(emp[0]));
}