我用Repeater 我想选中每行前的CheckBOX 把这一行的ID值存到一个东西里。我在CheckBox事件里那个控件的对象,取ID for (int i = 0; i < p_rptAdmin.Items.Count; i++)
  {
     //查找出选中了哪一行
     if (((CheckBox)p_rptAdmin.Items[i].FindControl("chk_SelectOne")) == p_chkSelectOne)
    { 
     strTempID = p_rptAdmin.DataMember[p_rptAdmin.Items[i].ItemIndex].ToString();
    }
}
Repeater  里存ID的是哪个,是DataMember?我怎么去不到。。
Repeater 怎么查找头模板的控件(也是在CheckBOX 的事件里的)?GridView有个HeadRow,Repeater 怎么写?

解决方案 »

  1.   

    Repeater  里存ID的是哪个???~按照我的理解你应该是要取得里面的控件的值吧~
    比方说~
    for (int i = 0; i < p_rptAdmin.Items.Count; i++) 
      { 
        //查找出选中了哪一行 
    checkbox cb=(checkbox)Repeater1.items[i].FindControl("CheckBox1");//这个是寻找你所要得到那个控件的值,这里举例是checkbox1
    if(cb.Checked)
    {
    //dosomething
    }
      

  2.   

    Repeater和datalist类似,里面的布局比Gridview灵活多了!存放值,你完全自己放个控件的,Repeater中的头部是HeaderTemplate也就是头模版!
      

  3.   

     protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                
                DataRowView dr = (DataRowView)e.Item.DataItem;
                string autoId = dr["autoId"].ToString();
               
            }    }
      

  4.   

    做法和gridview类似的,取值应该是repeter.items[i].tostring()
      

  5.   

    GridView DataKeyNames用这个存ID,然后在这里边取。
    GridView.headRow.findControl("")这样取头模板的值,但是HeadTemple不能。
    小弟才疏学浅,个位大哥别光说不练。给点实际的
      

  6.   

    1、第一种办法
    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                
                DataRowView dr = (DataRowView)e.Item.DataItem;
                string autoId = dr["autoId"].ToString();
               
            }    }
    2、页面浏览后,点击鼠标右键---查看源文件,从源文件中查看id
      

  7.   

     我是在CheckBox事件里的,做题要仔细~
      

  8.   

      if (Repeater1.Items.Count > 0)
            {
                ArrayList array = new ArrayList();
                ArrayList arraylist = new ArrayList();
                for (int i = 0; i < Repeater1.Items.Count; i++)
                {                HiddenField s = this.Repeater1.Items[i].FindControl("s") as HiddenField;
                    HtmlInputCheckBox ck = this.Repeater1.Items[i].FindControl("cbxone") as HtmlInputCheckBox;
                    if (!ck.Checked)
                    {
                        HiddenField sid = this.Repeater1.Items[i].FindControl("sid") as HiddenField;
                        array.Add(sid.Value);
                    }
                    else if (ck.Checked)
                    {
                        HiddenField sid = this.Repeater1.Items[i].FindControl("sid") as HiddenField;
                        // array.Add(sid.Value);
                        arraylist.Add(sid.Value);                }
                }
                if (array.Count == 0)
                {
                    //db.MessageBox("请选择数据!");
                }
                else
                {
                    int count = 0;                for (int i = 0; i < array.Count; i++)
                    {                    if (DBCon.CGXSN(array[i].ToString()) == 1)
                        {
                            count++;
                        }
                    }
                }
                if (arraylist.Count == 0)
                {
                    // db.MessageBox("ok");            }
                else
                {
                    int count = 0;
                    for (int i = 0; i < arraylist.Count; i++)
                    {
                        if (DBCon.CGXS(arraylist[i].ToString()) == 1)
                        {
                            count++;
                        }
                    }
                }
            }