C# 
Repeater 嵌套datalist
先绑定repeater 再绑定里面的datalist,用Repeater1_ItemDataBound()来绑定,没有问题。现在问题是:
datalist 里面每项都有一个checkbox ,可以选择,点击保存来保存选择的数据。
如何获得选中的checkbox的ID呢,在哪个函数获取?
有会的就教教我吧

解决方案 »

  1.   

    button1_click(...)
    {
       foreach(RepeaterItem ri in repeater1.Items)
       {
           DataList dl=(DataList)ri.FindControl("datalist1");
           foreach(DataListItem di in dl.Items)
           {
              CheckBox cb=(CheckBox)di.FindControl("checkbox1");
              if(cb.Checked)
              {
                 //di.ItemIndex是索引,或者再di.FindControl。随你了
              }
           }
       }
    }纯手写,未测试,自己调
      

  2.   

    Repeater外有一Button,在Button的click事件下获得:
    id分别是Repeater1,DataList1,CheckBox1
        protected void Button1_Click(object sender, EventArgs e)
        {
            string str = "";
            for (int i = 0; i < Repeater1.Items.Count; i++)
            {
                DataList myDataList = (DataList)Repeater1.Items[i].FindControl("DataList1");
                for (int j = 0; j < myDataList.Items.Count; j++)
                {
                    CheckBox myCheckBox = (CheckBox)myDataList.Items[j].FindControl("CheckBox1");
                    if (myCheckBox.Checked)
                    {
                        str += "Repeat的第" + i.ToString() + "行,DataList的第" + j.ToString() + "行选中<br />";
                    }
                }
            }
            Response.Write(str);
        }
      

  3.   

    foreach(RepeaterItem item in repeater1.Items)
      {
      DataList dl=item .FindControl("datalist1") as DataList;
      foreach(DataListItem di in dl.Items)
      {
      CheckBox cb=di.FindControl("checkbox1") as CheckBox;
      if(cb.Checked)
      {
      }
      }
      

  4.   


    一楼管得对,
    “//di.ItemIndex是索引,或者再di.FindControl。随你了”
    换成你要做的东西,比如说  cb.ID 是程序的ID,  cb.ClientID是输出客户端的ID。