CS1502: 与“int.Parse(string)”最匹配的重载方法具有一些无效参数
代码在这里想保存datalist里选中的项
   int id = int.Parse(DataList8.Items[i].FindControl("CheckBox2"));  这一句报的错

解决方案 »

  1.   

    DataList8.Items[i].FindControl("CheckBox2")要加ToString()?
      

  2.   

    int id = int.Parse(DataList8.Items[i].FindControl("CheckBox2"));  
    DataList8.Items[i].FindControl("CheckBox2") 返回一个控件类型,连string都不是!
    也许你忘记了加上.ToString()
    如果你真这么做,建议用TryParse这样不会出现异常,用返回值来判断是否转换正确,
      

  3.   

    DataList8.Items[i].FindControl("CheckBox2")这个类型是checkbox类型 怎么能转换成string呢?
      

  4.   

    2,3楼说的都对,你int.parse里面的是控件类型,不是数据类型
    你想得到checkbox的什么值呢
      

  5.   

    源代码是这样的,    List<int> list = new List<int>();
           for (int i = 0; i < DataList8.Items.Count; i++)
           {
                CheckBox ck = DataList8.Items[i].FindControl("CheckBox2") as CheckBox;
               if (ck.Checked)
               { 
      
                   int id = int.Parse(DataList8.Items[i].FindControl("CheckBox2").ToString());          list.Add(id);
              }
    我想得到以选中的项目的值
      

  6.   

    int id = int.Parse(ck.Text);
      

  7.   

    报错。  if (ck.Checked)   、、说这里未将对象引用设置到对象的实例。
              { 
      

  8.   

    CheckBox ck = DataList8.Items[i].FindControl("CheckBox2") as CheckBox; 
    这句话,as操作符,如果类型不对,则返回的是null,所以你要在使用ck前判断一下是否为null
      

  9.   


    用ck.Checked 之前判断
    if(ck is CheckBox)
    {
     /////