dynamic check boxes in a table won't hold checked value
<p>I am dynamically creating a table with data and check boxes in it, my problem is when i check to see one specific check-box is checked, out of many, it resets to the default state of false (note: its not just one it doesn't work with, it works with non of the generated check boxes)
<br/>
<br/></p>

<p>Before i create the page_load function i create the check box, further down i create the table, and populate it with data, then i set up a function to check on a click to see if the box was indeed checked, iv'e tried many iterations of this with no luck
<br/>
<br/></p>

<pre><code>protected void  table_builder(SqlDataReader readerinfo)
{
    //Create a new step for the user
    step3label.Text = "3.";
    //Table header
    TableHeaderRow hr = new TableHeaderRow();
    TableHeaderCell hc = new TableHeaderCell();
    TableHeaderCell hc2 = new TableHeaderCell();
    TableHeaderCell hc3 = new TableHeaderCell();
    hr.Cells.Add(hc);
    hc.Text = "ID"; //Assign header 1 with a name
    hr.Cells.Add(hc2);
    hc2.Text = "Name";//Assign header 2 with a name
    hr.Cells.Add(hc3);
    hc3.Text = "Selection";
    Table1.Rows.Add(hr);


    //Dynamic Table Generation
    int numcells = 3;
    int triswitch = 0;//this is use to chose which cell is made, id, name or selection
    string checkboxID = null;


    while (readerinfo.Read())   //execute the following aslong as there is data to fill the table with
    {
        for (int j = 0; j &lt; 1; j++)
        {
            TableRow r = new TableRow();
            for (int i = 0; i &lt; numcells; i++)
            {
                TableCell c = new TableCell();

                switch (triswitch)
                {
                    case 0: // this case sets the info for the feild id
                        c.Text = readerinfo.GetSqlGuid(0).ToString();
                        checkboxID = readerinfo.GetSqlGuid(0).ToString();
                        r.Cells.Add(c);
                        triswitch = 1;
                        break;

                    case 1:
                        c.Text = readerinfo.GetString(1);
                        r.Cells.Add(c);
                        triswitch = 2;
                        break;

                    case 2:
                        Checkbox_creator(checkboxID,ref c);
                        r.Cells.Add(c);
                        triswitch = 0;
                        break;

                }
            }
            Table1.Rows.Add(r);
        }
    }       
}

protected void Checkbox_creator(string id,ref TableCell send)
{
    //create the checbox
    ckbx = new CheckBox();
    ckbx.ID = "CBX" + checkboxid.ToString();
    checkboxid++;
    ckbx.InputAttributes.Add("value", id);
    send.Controls.Add(ckbx); //add the chekbox to the cell
    checkboxidlist.Add(id);//add the id of the checkbox to the list 
}



//
//AFTER DATATABLE IS LOADED
//

public void test()
{
    // Find control on page.
    CheckBox myControl1 = (CheckBox)Table1.FindControl("CBX0");
    if (myControl1 != null)
    {
        // Get control's parent.
        Control myControl2 = myControl1.Parent.Parent.Parent;
        Response.Write("Parent of the text box is : " + myControl2.ID);
        if (myControl1.Checked == true)
        {
            Response.Write("check box checked");
        }
    }
    else
    {
        Response.Write("Control not found");
    }
}
 //on Submit button click, execute the following function
protected void Submit_Click(object sender, EventArgs e)
{
    //Code to be executed
    string Userinput; //declare Userinput variable
    Userinput = Searchbox.Value; // Set variable to asp controll        
    Response.Write("&lt;br /&gt; &lt;br /&gt;"+ Userinput +" &lt;- user imput works");
    ConnectToSql(Userinput);//insert what the user submitted into a query
    test();
    //
    //
    //NoTe code validation is needed to prevent injections
    //  
}
</code></pre>
