控件
DropDownList ddl = new DropDownList();
ddl.ID = "ddllast" ;
ddl.DataSource = db.GetDataSet("select * from leixing where prents=" + list1[0].ToString());
ddl.DataTextField = "leixing";
ddl.DataValueField = "id";
ddl.DataBind();
ddl.Items.Insert(0, new ListItem("-请选择-", "0"));
ddl.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);
ddl.AutoPostBack = true;
Panel1.Controls.Add(ddl);
事件
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList list = sender as DropDownList; ;
Session["leixing"] = list.SelectedValue;
leixing(int.parse(list.SelectedValue));
}
根本不做那里面的事件 我下拉框里选过个东西 连动态创建的控件都没了 关panel的事吗
我以前做用户控件也是 只第一次有反映后面就没了 是关PostBack的事吗
DropDownList ddl = new DropDownList();
ddl.ID = "ddllast" ;
ddl.DataSource = db.GetDataSet("select * from leixing where prents=" + list1[0].ToString());
ddl.DataTextField = "leixing";
ddl.DataValueField = "id";
ddl.DataBind();
ddl.Items.Insert(0, new ListItem("-请选择-", "0"));
ddl.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);
ddl.AutoPostBack = true;
Panel1.Controls.Add(ddl);
事件
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList list = sender as DropDownList; ;
Session["leixing"] = list.SelectedValue;
leixing(int.parse(list.SelectedValue));
}
根本不做那里面的事件 我下拉框里选过个东西 连动态创建的控件都没了 关panel的事吗
我以前做用户控件也是 只第一次有反映后面就没了 是关PostBack的事吗
//控件的状态会被保存的,不用考虑
或JS添加input
ControlCollection controls;
if (Session["controls"] == null)
controls = new ControlCollection(new System.Web.UI.Control());
else
controls = (ControlCollection)Session["controls"];
foreach (System.Web.UI.Control control in controls)
panel1.Controls.Add(control);
不跳转 怎么触发 load。。
能说明白点吗
public void CreateControl()
{
DropDownList ddl = new DropDownList();
ddl.ID = "ddllast" ;
ddl.DataSource = db.GetDataSet("select * from leixing where prents=" + list1[0].ToString());
ddl.DataTextField = "leixing";
ddl.DataValueField = "id";
ddl.DataBind();
ddl.Items.Insert(0, new ListItem("-请选择-", "0"));
ddl.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);
ddl.AutoPostBack = true;
Panel1.Controls.Add(ddl);}
然后在Page_Load中调用这个方法就可以了
顶楼上这个方法,楼主应该去试一试。打断点调试了没,你点按钮页面回发,需要在Page_load里执行一遍你的CreateControl()方法,才会有
ddl.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);