注册 登录
编程论坛 ASP.NET技术论坛

DropDownList二级联动 为何子级DropDownList 显示不出来啊 求助!(已解决)

lovexran 发布于 2008-04-02 09:31, 2858 次点击
全部的代码 DropDownList二级联动

public void DataBind()
    {
        SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["DNS"]);
        string Sql = "select * from dictionary where projectid like '0%'";
        SqlDataAdapter da = new SqlDataAdapter(Sql, con);
        DataSet ds = new DataSet();
        da.Fill(ds, "dictionary");
        con.Close();
        DropDownList2.DataSource = ds.Tables["dictionary"].DefaultView;
        DropDownList2.DataTextField = "name";
        DropDownList2.DataValueField = "projectid";
        DropDownList2.DataBind();
    }

 protected void DropDownList2_SelectedIndexChanged1(object sender, EventArgs e)
    {
      SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["DNS"]);   
        string Sql1 = "select * from dictionary where zjid like '" + DropDownList2.SelectedValue + "%'";
        SqlDataAdapter da = new SqlDataAdapter(Sql1, con);
        DataSet ds = new DataSet();
        da.Fill(ds, "dictionary");
        con.Close();
        DropDownList3.DataSource = ds.Tables["dictionary"].DefaultView;
        DropDownList3.DataTextField = "name";
        DropDownList3.DataBind();
    }
为什么运行没效果啊,
这样的写有错吗?

[[it] 本帖最后由 lovexran 于 2008-4-15 09:54 编辑 [/it]]
15 回复
#2
shezhenhui19892008-04-02 09:35
select * from 表名 where zjid like'%" + DropDownList2.SelectedValue + "%'
#3
仰望星空2008-04-02 09:36
表面上看是没问题的
一种可能是数据库里本身就没有相关的数据
另一种可能是,你根本就没去数据库取值,或者取到值了没有绑定到页面上
#4
仰望星空2008-04-02 09:38
回复 2# 的帖子
随便加“%”可能有违楼主的本意哦,那是楼主的逻辑,你怎么知道是对是错呢?
#5
仰望星空2008-04-02 10:00
晕了,看来我可能少说了一种可能,楼主在使用控件相应的方法的时候,应该知道,只有按钮那样的控件响应时间的属性默认值是true,其他的控件基本都是false(当然我说的都是像label、textbox的那样的控件),这个属性好像是AutoPostBack
#6
lovexran2008-04-02 10:04
回复 5# 的帖子
有设置的啊
#7
仰望星空2008-04-02 10:17
楼主你在获取值的时候是DropDownList2.SelectedValue,value值,而你只绑定了DataTextField,text值,value应该不是你想要的值吧
#8
lovexran2008-04-02 10:20
回复 7# 的帖子
我要的是界面显示name  而后台需要获取它这条信息的父类id
通过父类id  然后查询出子类
#9
仰望星空2008-04-02 10:23
string Sql1 = "select * from dictionary where zjid like '" + DropDownList2.SelectedText + "%'";
试试这样
#10
lovexran2008-04-02 10:28
回复 9# 的帖子
不行啊
#11
仰望星空2008-04-02 10:42
DropDownList2.DataSource = ds.Tables["dictionary"]
绑定的时候改成这个
#12
lovexran2008-04-02 10:46
回复 10# 的帖子
解决了 谢了
#13
hebingbing2008-04-02 10:55
你这样肯定是没有效果了……
你直接写上:DropDownList3.DataTextField = "name";
估计是不行的。
SqlDataReader dr = comm。ExcuteReader();
再加上一个if判断:
if(dr.read())
{
DropDownList3.DataTextField = dr("name").value
}
估计楼主以前是学asp的吧……
和asp不一样,你必须用datatable类或dataAdapter类的对象引用字段,不能直接像你那样引用……

[[it] 本帖最后由 hebingbing 于 2008-4-2 11:02 编辑 [/it]]
#14
hebingbing2008-04-02 10:56
晕……
回复的慢了……
#15
lovexran2008-04-02 11:06
回复 9# 的帖子
解决了 ^_^
#16
仰望星空2008-04-02 13:01
呵呵,那就好
1