<%
            //连接数据库,并读取表中的记录
            string strconn = System.Configuration.ConfigurationSettings.AppSettings["NstrConnstr"];
            OleDbConnection Conn = new OleDbConnection(strconn);
            Conn.Open();
            OleDbCommand Myconn = new OleDbCommand();
            string strCommstr = "select * from qxset ";
            Myconn = new OleDbCommand(strCommstr, Conn);
            OleDbDataReader dr;
            dr = Myconn.ExecuteReader();
            
            //动态生成Checkboxlist 并和数据库绑定
            CheckBoxList CheckBoxlist1=new CheckBoxList() ;
            CheckBoxlist1.ID = "Ch1";
            this.form1 .Controls .Add("Ch1");
            CheckBoxlist1.DataSource = dr;
            CheckBoxlist1.DataTextField = "qxname";
            CheckBoxlist1.DataValueField = "qxbh";
            CheckBoxlist1.DataBind ();
            %>但运行时Checkboxlist控件并不显示,什么原因?

解决方案 »

  1.   

    如果改成2楼的:
    this.Controls.Add(CheckBoxlist1);则提示错误:
    控件包含代码块(即 <% ... %>),因此无法修改控件集合
      

  2.   

    我要根据数据库中取到的数据类别不同,动态的生成若干个Checkboxlist
      

  3.   

    不推荐用<%...%>这种标记在前台控制,这是asp的写法。.net里应该尽可能在后台cs文件中控制,实现web标准:内容(html元素)、表现(css)、逻辑(前台js、后台cs)三者分离。
      

  4.   

    Page_Load中this.Controls.Add(CheckBoxlist1);
      

  5.   

    还不如在后台直接生成<input name="" type="checkbox" value="" />
    前台再用js控制