下载了一个源代码,看里面有个关于绑定DropDownList。代码如下:
string sqlFather = "select id,ClassName From T_ProductClass order by id desc";
        DBFun.FillDwList(ddlFather, sqlFather);
        ddlFather.Items.Add(new ListItem("请选择父类", "0"));
        ddlFather.Text = "0";        string action = Request.QueryString["Action"];
        string id = Request.QueryString["id"];
        if (action == "Edit")
        {
             string sql1 = "select * From T_ProductClass where id=" + id + "";
            DataView dv = DBFun.GetDataView(sql1);
            tbxName.Text = dv.Table.Rows[0]["ClassName"].ToString();
            ddlFather.Text = dv.Table.Rows[0]["PID"].ToString();
            
        }这是一个修改与删除的功能都在一个页面实现的代码,删除的代码我没贴出来,现在的问题有:
1、ddlFather.Items.Add(new ListItem("请选择父类", "0"));这是添加一个新项目进去,那为什么如果没有ddlFather.Text = "0";这句就没法默认显示“请选择父类”呢。
2、为什么绑定DropDownList的代码要在if(action=="Edit")之前呢。如果放在这这个判断语句后面的话,当我点击修改按钮时就会出错。
谢谢。

解决方案 »

  1.   

    1.数据绑定之前DropDownList里面已经有项了,之后Add进去的项是加到最后面去的,默认是显示第一项,如果没有ddlFather.Text = "0";是不会显示“请选择父类”的。
    2.我想if里面的语句可能是以绑定后里面的项相关的,所以先后不能换
      

  2.   

    ddlFather.Items.Add(new ListItem("请选择父类", "0"));
            ddlFather.Text = "0";
    这个你可以不动态加载进去,直接手工添加就可以了吧!
      

  3.   

    ddlFather.Items.Add(new ListItem("请选择父类", "0"));
    ddlFather.Text = "0";
    ----------------------------------
    个人比较推荐ddlFather.SelectedValue = "0"; 这种写法。
    查了MSDN,ListControl.Text Property :Gets or sets the SelectedValue property of the ListControl control.
    居然是这样,这和winform里的ComboBox.Text又不一样了。