平时我们用DropDownList控件(如:下拉菜单时)显示栏目名称等时,一般可以用两种方法使其显示我们要的内容:
方法一:
//ddlFirstType即为DropDownList控件,下同
ddlFirstType.DataSource = ds.Tables[0].DefaultView;
//这里绑定的是在下拉菜单中显示出来的文字,比如"我的文章"
ddlFirstType.DataTextField = "CnName";
//这里绑定的内容在下拉菜单中是看不到的,这里指的是"我的文章"这个栏目在数据库中对应的ID
ddlFirstType.DataValueField = "ID";
ddlFirstType.DataBind();
此时,ddlFirstType.SelectedValue得到的是ID这个字段的内容,比如你选中的是"我的文章"这个栏目,那么此时SelectedValue得到的是"我的文章"在数据库中对应的ID.要得到下拉菜单中选中的值,如"我的文章",需要用:
ddlFirstType.SelectedItem.Text.
方法二:
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
ddlSecondType.Items.Add(ds.Tables[0].Rows[i]["CnName"].ToString());
} 此时, ddlFirstType.SelectedValue得到的是CnName这个字段的内容,比如你选中的是"我的文章"这个栏目,那么此时SelectedValue得到就是"我的文章"这几个字,而ID的内容就得不到.
有的时候事件不能响应,DropDownList属性AutoPostBack 设置为true
另一用法:

代码:
if (!IsPostBack)
{
DropDownList2.Items.Add("杨过");
DropDownList2.Items.Add("小龙女");
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList2.Items.Clear();
if (DropDownList1.Items[0].Selected)
{
DropDownList2.Items.Add("陆小凤");
DropDownList2.Items.Add("楚留香");
}
else
{
DropDownList2.Items.Add("杨过");
DropDownList2.Items.Add("小龙女");
}
}
三》看一下结果:

看一下选古龙。是什么样?

最后就是结束了。
先要在Page_Load事件里加载一次 设置要绑定的字段属性DataTextFieled="Name"
//下拉菜单绑定
void DllBind()
{
SqlConnection conn=new SqlConnection(ConfigurationSettings.AppSettings["StrCon"]);
SqlDataAdapter sda = new SqlDataAdapter("select Name from LSort where ParentID=8128",conn);
DataSet ds = new DataSet();
sda.Fill(ds,"LSort");
DataTable dt = ds.Tables["LSort"];
ddltxt.DataSource = dt;
ddltxt.DataBind();
}
posted @ 2007-06-14 18:07
tianya 阅读(628)
评论(0) 编辑 收藏