我在一个页面用到2个DROPDOWNLIST。想达到级联效果。。
代码如下:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string sql = "";
        if (this.DropDownList1.SelectedItem.Equals("帅哥"))
        {
            sql = "select top 10 pictureadd,picturename from picture";
            dropDownListBind(sql);
        }
        else
        {
            sql = "select top 10 pictureadd,picturename from picture order by pictureadd desc";
            dropDownListBind(sql);
        }    }    private void dropDownListBind(string sql)
    {
        SqlDataSource sds = new SqlDataSource();
        sds.ConnectionString = "server=.;uid=sa;pwd=sa;database=feel";
        sds.SelectCommand = sql;
        this.DropDownList2.DataSource = sds;
        this.DropDownList2.DataTextField = "picturename";
        this.DropDownList2.DataValueField = "pictureadd";
        this.DropDownList2.DataBind();
        
    }picturename我是后来加上去的。。因为考虑显示没有数据绑定。。
但是我在查询分析器里面查过了。SQL语句是对的。。
我运行的时候为什么就说找不到这列呢。。
还有就是我断点也加不上。。说找不到句柄。不知道什么意思。。
请大虾指导下。在线等了。,。。
谢谢。

解决方案 »

  1.   

    用SelectedIndex可以不 
    要不先去出来看得到值没有
      

  2.   


    private void dropDownListBind(string sql) 
        { 
            SqlDataSource sds = new SqlDataSource(); 
            sds.ConnectionString = "server=.;uid=sa;pwd=sa;database=feel"; 
            sds.SelectCommand = sql; 
            this.DropDownList2.DataSource = sds; 
            this.DropDownList2.DataTextField = "picturename"; 
            this.DropDownList2.DataValueField = "pictureadd"; 
            this.DropDownList2.DataBind(); 
             
        } 
    是不是这里的问题?
    你换一种获得数据源的方法,比如用适配器填充数据源,然后将数据源给DropDownList,再分别设置为DataTextField,
    DataValueField,再DataBind()一下就可以了
      

  3.   

    我运行的时候为什么就说找不到这列呢。。
    --------------------------------
    找不到列?lz尝试一下换成datatable绑定试试..没有用过SqlDataSource