比如一个checkboxlist id为display
display.DataSource   =   sqlreader("select ispass,title,id from dev_area order by ispass asc,istop desc")
display.DataTextField   =   "title"   
display.DataValueField   =   "id"   
display.DataBind() (注:其中第一句=右边是我制作的一个过程,这个没有什么错误)执行结果是正常的,也都能显示出来,可是我应该如何根据库中字段ispass的0和1来设置该子选项是否处于选定状态呢?
换句话说我想让ispass=1的全部处于选定状态,而<>1的则不选定。这个效果应该怎么做啊?
难道要遍历每个子选项的ID,读取一次数据库来判断吗?有很多哇。。

解决方案 »

  1.   

    你这个DataSource的数据集不是已经有了吗
    你循环遍历这个数据集的ispass值就行了,不用再去数据库逛一趟
    遍历display每个项
    foreach (ListItem li in display.Items)
    设置li.Selected=true;
      

  2.   

    下面代码改成读数据集的数据就行了   
          for (int i = 0; i < 3; i++)
             {
                ListItem item = new ListItem(i.ToString(), i.ToString());
                if (1 == 1)
                {
                    item.Selected = true;
                }
                this.CheckBoxList1.Items.Add(item);
            }
      

  3.   

    DataTable Dt=new DataTable();
    Dt=sqlreader("select ispass,title,id from dev_area order by ispass asc,istop desc") 
    for(int i=0;i<Dt.rows.count;i++)
    {
       ......
    }
      

  4.   

    Dt=sqlreader("select ispass,title,id from dev_area order by ispass asc,istop desc") 
    这个不对,用command吧
      

  5.   

    sqlreader这样循环
    while (reader.Read())
    {
       
    }
      

  6.   

    那我把我这个子程序也帖出来,请帮我看看如何修改。
    谢谢。
    function sqlreader(sqlstr as string)
    if conn.state=1 then conn.close
    try
    conn.open
    objcmd.connection=conn
    objcmd.commandtext=sqlstr
    return objcmd.executereader()
    catch
    dealerr
    end try
    end function
      

  7.   

    好像reader不行, 我修改成了dataset if conn.state=1 then conn.close
    conn.open
    dim mydataset as new dataset
    dim mydataadapter as new sqldataadapter("select ispass,title,id from dev_area order by ispass asc,istop desc",conn)
    mydataadapter.fill(mydataset,"customers")
    dim dttable=mydataset.tables("customers")
    display.datasource = dttable
    display.DataTextField   =   "title"   
    display.DataValueField   =   "id"   
    display.DataBind() 
    请问下边如何遍历?拜托。
      

  8.   

    DataTable dttable=mydataset.tables("customers") ;
    for (int i = 0; i< dttable.rows.count ; i++) 
     { 
                ListItem item = new ListItem(dttable.rows[i]["title"],dttable.rows[i]["id"]); 
                if (dttable.rows[i]["title"].toString() == "1") 
                { 
                    item.Selected = true; 
                } else
                {
                     item.Selected = false; 
                }
                this.CheckBoxList1.Items.Add(item); 
      }vb的代码自己对着该吧
      

  9.   

    DataTable dttable=mydataset.tables("customers") ; 
    for (int i = 0; i < dttable.rows.count ; i++) 

                ListItem item = new ListItem(dttable.rows[i]["title"],dttable.rows[i]["id"]); 
                if (dttable.rows[i]["ispass"].toString() == "1") 
                { 
                    item.Selected = true; 
                } else 
                { 
                    item.Selected = false; 
                } 
                this.CheckBoxList1.Items.Add(item); 
      } vb的代码自己对着该吧