附上参考图:
选择后变成这个样啦: http://www.stQQ.net/test.gif

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!Page.PostBack)
    {
    shootselect.Items.Clear();//清空
    con.open1();
    sql="select shoot,shootid from [shoot] order by ID asc";
    cmd1=new SqlCommand(sql,con.link1);
    read1=cmd1.ExecuteReader();

    if(read1.HasRows)
    {  
    while(read1.Read())
    {
    ListItem item = new                                 ListItem(read1.GetValue(0).ToString(),read1.GetValue(1).ToString());

    shootselect.Items.Add(item);

    }
    }
    else
    {
    ListItem item = new ListItem("警告:请先增加摄影器材!","0");
    shootselect.Items.Add(item);
    }
    read1.Close();
    con.link1.Close(); 
    }private void shootselect_SelectedIndexChanged_1(object sender, System.EventArgs e)
      { Response.Write("选中摄影器材的ID值是"+shootselect.SelectedValue.ToString());
    con.open2();
    sql="select model,modelid from [model] where shootid="+shootselect.SelectedValue.ToString()+" order by ID asc";
    cmd2=new SqlCommand(sql,con.link2);
    read2=cmd2.ExecuteReader();    if(read2.HasRows)
    {     modelselect.Items.Clear();
        while(read2.Read())
        {
        ListItem item = new                          ListItem(read2.GetValue(0).ToString(),read2.GetValue(1).ToString());
        modelselect.Items.Add(item);

        }
     }
     else
     {
        ListItem item = new ListItem("警告:请先增加摄影器材的型号!","0");
        modelselect.Items.Add(item);
     }
     read2.Close();
     con.link2.Close();

     }
      

  2.   

    只是修改了Page_Load().
    在里面加入判断if(!Page.PostBack)
                  shootselect.Items.Clear();
      

  3.   

    将你的代码放在
    private void Page_Load(object sender, System.EventArgs e)
    {

    if(!IsPostBack)
    {//你的代码 放在这里面!} }
      

  4.   

    agree following:
    shootselect.Items.Clear();
      

  5.   

    因为你没有清空吧,在重新绑定时,如让面孟子E章所说,要清空一下再绑定。
    在你将要循环添加的前面加一句:DropDownlist.Items.Clear();即可
      

  6.   

    private void shootselect_SelectedIndexChanged_1(object sender, System.EventArgs e)
      {
          DropDownlist.Items.Clear();


    }
      

  7.   

    倒~问题解决了,清空我也尝试过,但就是没加IsPostBack 我还是不理解if(!IsPostBack)的含义,菜鸟问题,大家能不能解释一下呀~~ 为什么加多一个(!IsPostBack)判断就不会了呀,如何正确运用IsPostBack呀,在什么情况下才要加呢?
      

  8.   

    很明显的,你将在每次第一个Dropdownlist提交的时候,都会往里面添加一次重复的记录;
    所以参照
    hertcloud(重载∮DOTNET Joyes.com)的做法,是正确的。如果每次都Items.Clear的话将造成资源的浪费
      

  9.   

    if(!IsPostBack)的含义代表该页面是否为第一次请求;
    eg,
    你第一次请求一个页面那么对这个页面的请求为Get,那么接下来的你点击按钮或者下拉框产生提交的那么请求动词就为Post,那么这个时候因为你已经对该页面请求过一次了服务端看到的就是你客户端Post-Back回来的东西了。
      

  10.   

    Dropdownlist是服务端控件,他会提交请求,使得页面刷新的。
    但此时,显然你不想那段“向Dropdownlist添加项目”代码再执行一次,所以要加以判断;
    最好是看看自己的帮助。