为什么总是获取dropdownlist第一行的值?
两个dropdownlist1、dropdownlist2,分别在页面载入时绑定获得大类、对应的小类,dropdownlist1的SelectedIndexChanged事件激发dropdownlist2重新绑定对应的小类,存数据库时只能存dropdownlist2的第一项。如果把dropdownlist2的绑定代码写在if(!ispostback)里,则dropdownlist1选择时dropdownlist2无动作。代码如下:
我是新手,希望大家不吝赐教啊!谢谢
protected DataSet ds = new DataSet(); SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ccc"]);
protected void Page_Load(object sender, EventArgs e)
{
if (Session["admin"] == null)
{
Response.Redirect("adminlogin.aspx");
}
conn.Open();
if (!IsPostBack)
{
SqlDataAdapter sqlda = new SqlDataAdapter("select * from tb_supertype",conn);
sqlda.Fill(ds);
DataRow[] rows = ds.Tables[0].Select();
foreach (DataRow row in rows)
{
ListItem newitem = new ListItem();
newitem.Text = row["typename"].ToString();
newitem.Value = row["id"].ToString();
DropDownList1.Items.Add(newitem);
}
}
conn.Close();
if (DropDownList1.Text != "")
{
binddd2();
}
}
protected void binddd2()//绑定dropdownlist2
{
if (!IsPostBack)
{
conn.Open();
ds.Clear();
DropDownList2.Items.Clear();
string sqltxt = "select * from tb_subtype where supertype=" + DropDownList1.SelectedItem.Value;
SqlDataAdapter sqlda = new SqlDataAdapter(sqltxt, conn);
sqlda.Fill(ds);
DataRow[] rows = ds.Tables[0].Select();
foreach (DataRow row in rows)
{
ListItem newitem = new ListItem();
newitem.Text = row["typename"].ToString();
newitem.Value = row["id"].ToString();
DropDownList2.Items.Add(newitem);
}
conn.Close();
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (DropDownList1.Text != "")
{
binddd2();
}
} --------------------编程问答--------------------
把Page_load 中的
if (DropDownList1.Text != "")
{
binddd2();
}
放到if( !IsPostBack ) 中,把 binddd2() 中的if去掉.
使用任意的中文编码查看或发帖即可。
--------------------------------------------------------------------------------
析软网
http://www.parsesoft.net
http://bbs.parsesoft.net
致力于 DocBook 的应用,专注于开源软件的解析、手册/指南、以及应用文章、书籍的发布。
--------------------编程问答-------------------- 所有的绑定应该放在if (!IsPostBack)里面
--------------------编程问答--------------------
正解!
补充:.NET技术 , ASP.NET