本帖最后由 bychgh 于 2010-10-08 10:38:10 编辑

解决方案 »

  1.   

    <asp:ScriptManager ID="ScriptManager1" runat="server">
      </asp:ScriptManager>
      <div>
      <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>
      <asp:DropDownList ID="ddlLB" runat="server" Width="15%" AutoPostBack="True" OnSelectedIndexChanged="ddlLB_SelectedIndexChanged">
      </asp:DropDownList>
      <asp:DropDownList ID="ddlChild" runat="server" Width="20%">
      </asp:DropDownList>
      </ContentTemplate>
      </asp:UpdatePanel>
      </div>   
    protected void ddlLB_SelectedIndexChanged(object sender, EventArgs e)
      {
      if(this.ddlLB.SelectedValue!=null)
      {
      BindChild(this.ddlLB.SelectedValue);
      }
      }
    SelectedValue变化才能获取值
      

  2.   

    protected void Page_Load(object sender, EventArgs e)
        {
           if (!IsPostBack)
            {
                //  第一个dropdownlist   ,AutoPostBack="true"    
                this.ddl_Channel.DataSource = new BLL.NMG_Article_Channel().GetAllList();
                this.ddl_Channel.DataTextField = "ch_name";
                this.ddl_Channel.DataValueField = "ch_id";
                this.ddl_Channel.DataBind();
               
            }
     
     if (!string.IsNullOrEmpty(this.ddl_Channel.SelectedValue))
        {
            bingClass();            
        }
    }  public void bingClass()
        {
          this.ddl_Class.Items.Clear();
          ClassN0 = Convert.ToInt32(this.ddl_Class.SelectedValue.ToString());
         if (!string.IsNullOrEmpty(ChannelNo.ToString()))
          {
            DataTable Dt = new BLL.NMG_Article_Class().GetNewsClass(ChannelNo).Tables[0];
            for (int i = 0; i < Dt.Rows.Count; i++)
            {
                string c_id = Dt.Rows[i]["cl_id"].ToString();
                string c_name = Dt.Rows[i]["cl_name"].ToString();
                this.ddl_Class.Items.Add(new ListItem(c_name, c_id));
             }
           }
        }
      

  3.   

    修改
    if (this.ddl_Channel.SelectedIndex != -1)
    {
                //ChannelNo = Convert.ToInt32(this.ddl_Channel.SelectedItem.Value);
                bingClass();   //第二个           
    }应该是ChannelNo这个中间变量的关系.使用DDL的index就好了 -1 代表没选
      

  4.   

     if (!IsPostBack)绑定的时候不要写在这里面
      

  5.   

    http://blog.csdn.net/xianfajushi/archive/2010/10/08/5928136.aspx