C# 如何从动态创建的表中找到控件?

C# 如何从动态创建的表中找到控件?,c#,asp.net,drop-down-menu,dynamic-data,C#,Asp.net,Drop Down Menu,Dynamic Data,我的处理方式如下: 表名:tbltt 1.我从源代码中添加了一个表 2.在cs页面中创建行和列 3.数据将在运行时绑定 4.我想保存tablevalus,为此我想在其中找到控件(每行和每列都有下拉列表) 下表s public void createdynamictable() { string[] p = { "flag", "campusid", "ttid" }; string[] v = { "3", campusID.ToString(), ddl

我的处理方式如下:

表名:tbltt

1.我从源代码中添加了一个表

2.在cs页面中创建行和列

3.数据将在运行时绑定

4.我想保存tablevalus,为此我想在其中找到控件(每行和每列都有下拉列表)

下表s

public void createdynamictable()
    {
        string[] p = { "flag", "campusid", "ttid" };
        string[] v = { "3", campusID.ToString(), ddlTimetable.SelectedValue };
        DataTable dtt2 = bl.SelectDataTableUsingSp("SP_timetablefinal", p, v);
        if (dtt2.Rows.Count > 0)
        {
            DataTable dtTimeTable = new DataTable();
            dTable1 = new DataTable();

            ArrayList freeHours = new ArrayList();
            ArrayList PeriodCount = new ArrayList();
            ArrayList PeriodCount1 = new ArrayList();
            ArrayList PeriodDate = new ArrayList();
            int period = 0;
            period = dtt2.Rows.Count;
            HtmlTableRow tableRowhead = new HtmlTableRow();
            HtmlTableCell tableCellhead = new HtmlTableCell();
            // tableCellhead.ColSpan = period + 2;

            Label lblHead = new Label();
            lblHead.ForeColor = System.Drawing.Color.Red;
            tableCellhead.Controls.Add(lblHead);

            tableRowhead.Controls.Add(tableCellhead);
            tbltt.Controls.Add(tableRowhead);
            HtmlTableRow tableRow = new HtmlTableRow();
            tableRow.BgColor = "#0272A8";
            tableRow.Height = "32";
            HtmlTableCell tableCell1 = new HtmlTableCell();
            tableCell1.Width = "75px";
            Label lbl = new Label();
            lbl.Text = " Date";
            lbl.Font.Size = 12;
            lbl.Font.Bold = true;
            lbl.ForeColor = System.Drawing.Color.White;
            tableCell1.Controls.Add(lbl);
            tableRow.Controls.Add(tableCell1);
            dtTimeTable.Columns.Add();
            dtTimeTable.Rows.Add();

            for (int k = 0; k <= dtt2.Rows.Count; k++)
            {
                HtmlTableCell tableCell = new HtmlTableCell();
                Label lblPeriodHead = new Label();
                if (k < dtt2.Rows.Count)
                    lblPeriodHead.Text = dtt2.Rows[k][0].ToString();
                lblPeriodHead.Font.Size = 12;
                tableCell.Width = "85px";
                lblPeriodHead.ForeColor = System.Drawing.Color.White;
                lblPeriodHead.Font.Bold = true;
                tableCell.Controls.Add(lblPeriodHead);
                tableRow.Controls.Add(tableCell);
                dtTimeTable.Columns.Add();
                dtTimeTable.Rows[0][k] = lblPeriodHead.Text;

            }
            //done
            string[] p2 = { "flag", "campusid", "ttid" };
            string[] v2 = { "2", campusID.ToString(), ddlTimetable.SelectedValue };
            dt = bl.SelectDataTableUsingSp("SP_timetablefinal", p2, v2);
            if (dt.Rows.Count > 0)
            {
                tbltt.Controls.Add(tableRow);
                for (int m = 0; m < dt.Rows.Count; m++)
                {
                    HtmlTableRow tableRowday = new HtmlTableRow();
                    HtmlTableCell tableCellday = new HtmlTableCell();

                    //----------------------------------
                    HtmlTableCell tableCelldate = new HtmlTableCell();
                    Label lbldate = new Label();
                    lbldate.Text = dt.Rows[m][0].ToString();
                    lbldate.Font.Size = 9;
                    lbldate.Height = Unit.Pixel(20);
                    tableCelldate.Width = "85px";
                    lbldate.Height = Unit.Pixel(20);
                    tableCelldate.Controls.Add(lbldate);
                    dtTimeTable.Rows.Add();
                    dtTimeTable.Rows[m + 1][0] = lbldate.Text;
                    tableCelldate.BorderColor = "Grey";

                    tableRowday.Controls.Add(tableCelldate);
                    int pds = 0;

                    for (int j = 1; j <= period; j++)
                    {
                        HtmlTableCell tableCells = new HtmlTableCell();

                        string datet = lbldate.Text;

                        string[] p22 = { "flag", "ttid", "campusid" };
                        string[] v22 = { "3", ddlTimetable.SelectedValue, campusID.ToString() };
                        DataTable dtss = bl.SelectDataTableUsingSp("SP_timetablefinal", p22, v22);
                        if (dtss.Rows.Count > 0)
                        {
                            DataTable ddt = new DataTable();


                            string[] pp = { "flag", "classid", "campusid" };
                            string[] vv = { "4", ddlclass.SelectedValue, campusID.ToString() };
                            ddt = bl.SelectDataTableUsingSp("SP_timetablefinal", pp, vv);
                            int count = 0;
                            if (ddt.Rows.Count > 0)//fill subjects
                            {
                                pds = pds + 1;
                                DateTime dat = Convert.ToDateTime(bl.SplitDate(datet));
                                DropDownList ddlsubjects = new DropDownList();
                                //ddlsubjects.CssClass = "dropdownMedium";

                                //ddlsubjects.Attributes.Add("style", "font-style:italic;color: #FF3399; font-size: 10px; border: thin groove #000000;width:300px");     
                                //ddlsubjects.Style = "color: #FF3399; font-size: 10px; border: thin groove #000000 ";
                                tableCells.BorderColor = "Grey";
                                //lbtnPeriodHead1.Text = "";
                                ddlsubjects.Font.Size = 8;
                                ddlsubjects.ForeColor = System.Drawing.Color.SlateGray;
                                ddlsubjects.Height = Unit.Pixel(20);
                                tableCells.Controls.Add(ddlsubjects);
                                tableRowday.Controls.Add(tableCells);
                                // DropDownList ddlsubjects = (DropDownList)childItem.FindControl("ddlsubjects");
                                if (count < ddt.Rows.Count)
                                {
                                    string[] p5 = { "flag", "classid", "pdsno", "date", "campusid" };
                                    string[] v5 = { "1", ddlclass.SelectedValue, pds.ToString(), dat.ToString(), campusID.ToString() };
                                    DataTable dtb = bl.SelectDataTableUsingSp("[SP_timetablefinalsub]", p5, v5);
                                    if (dtb.Rows.Count > 0)
                                    {
                                        ddlsubjects.DataValueField = "SubjectClassid";
                                        ddlsubjects.DataTextField = "papername";
                                        ddlsubjects.DataSource = dtb;
                                        ddlsubjects.DataBind();
                                        ddlsubjects.Items.Insert(0, new ListItem("Select One", "0"));
                                        count++;

                                        //fill datas in DB
                                        DateTime datt = dat;
                                        string[] p3 = { "flag", "ttid", "date", "campusid", "pdnum" };
                                        string[] v3 = { "6", ddlTimetable.SelectedValue, datt.ToString(), campusID.ToString(), pds.ToString() };
                                        DataTable d3 = bl.SelectDataTableUsingSp("SP_timetablefinal", p3, v3);
                                        if (d3.Rows.Count > 0)
                                        {
                                            if (d3.Rows[0][0].ToString()!= "0")
                                            {
                                                ddlsubjects.SelectedValue = d3.Rows[0][0].ToString();
                                            }   
                                        }
                                        //same group in any other class
                                        string[] p1 = { "flag", "classid", "fromdate", "todate" };
                                        string[] v1 = { "10", ddlclass.SelectedValue, bl.SplitDate(txtfrmdate.Text), bl.SplitDate(txttodate.Text) };
                                        DataTable dti = bl.SelectDataTableUsingSp("SP_timetablefinal", p1, v1);
                                        if (dti.Rows.Count > 0)
                                        {
                                            for (int s = 0; s < dti.Rows.Count; s++)
                                            {
                                                if (Convert.ToDateTime(dti.Rows[s]["date"]) == dat)
                                                {
                                                    if (Convert.ToInt16(dti.Rows[s]["periodnum"]) == pds)
                                                    {
                                                        int sss = Convert.ToInt16(dti.Rows[s]["opgroupid"]);
                                                        ddlsubjects.SelectedValue = sss.ToString();
                                                        ddlsubjects.Enabled = false;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    tbltt.Controls.Add(tableRowday);
                }
            }
        }
    }
public void createdynamictable()
{
字符串[]p={“flag”、“campusid”、“ttid”};
字符串[]v={“3”,campusID.ToString(),ddlTimeline.SelectedValue};
DataTable dtt2=bl.SelectDataTableUsingSp(“SP_timetablefinal”,p,v);
如果(dtt2.Rows.Count>0)
{
DataTable DTTimeline=新的DataTable();
dTable1=新的数据表();
ArrayList freeHours=新建ArrayList();
ArrayList PeriodCount=新的ArrayList();
ArrayList PeriodCount1=新的ArrayList();
ArrayList PeriodDate=新的ArrayList();
整数周期=0;
period=dtt2.Rows.Count;
HtmlTableRow tableRowhead=新的HtmlTableRow();
HtmlTableCell tableCellhead=新的HtmlTableCell();
//tableCellhead.ColSpan=周期+2;
Label lblHead=新标签();
lblHead.ForeColor=System.Drawing.Color.Red;
tableCellhead.Controls.Add(lblHead);
tableRowhead.Controls.Add(tableCellhead);
tbltt.Controls.Add(表格行首);
HtmlTableRow tableRow=新的HtmlTableRow();
tableRow.BgColor=“#0272A8”;
tableRow.Height=“32”;
HtmlTableCell tableCell1=新的HtmlTableCell();
tableCell1.Width=“75px”;
标签lbl=新标签();
lbl.Text=“日期”;
lbl.Font.Size=12;
lbl.Font.Bold=true;
lbl.ForeColor=System.Drawing.Color.White;
tableCell1.控件.添加(lbl);
tableRow.Controls.Add(tableCell1);
dttimeline.Columns.Add();
dttimeline.Rows.Add();
对于(int k=0;k 0)
{
tbltt.Controls.Add(表格行);
对于(int m=0;m0)//填充主题
{
pds=pds+1;
DateTime dat=Convert.ToDateTime(bl.SplitDate(datet));
DropDownList=新的DropDownList();
//ddldsubjects.CssClass=“dropdownMedium”;
//ddlsubjects.Attributes.Add(“样式”,“字体样式:斜体;颜色:#FF3399;字体大小:10px;边框:细槽#000000;宽度:300px”);
//ddl.Style=“颜色:#FF3399;字体大小:10px;边框:细沟#000000”;
tableCells.BorderColor=“灰色”;
//LBTN1.Text=“”;
ddl.Font.Size=8;
ddl.ForeColor=System.Drawing.Color.SlateGray;
高度=单位像素(20);
tableCells.Controls.Add(受试者);
tableRowday.Controls.Add(tableCells);
//DropDownList ddlsubjects=(DropDownList)childItem.FindControl(“ddlsubjects”);
如果(计数<滴滴涕行数)
{
字符串[]p5={“flag”、“classid”、“pdsno”、“date”、“campusid”};
字符串[]v5={“1”,ddlclass.SelectedValue,pds.ToString(),dat.ToString(),campusID.ToString()};
DataTable dtb=bl.SelectDataTableUsingSp(“[SP_timetablefinalsub]”,p5,v5);
如果(dtb.Rows.Count>0)
{
ddlsubjects.DataValueField=“SubjectClassid”;
ddlsubjects.DataTextField=“papername”;
ddlsubjects.DataSource=dtb;
ddl.DataBind();
ddlssubjects.Items.Insert(0,新列表项(“选择一个”,“0”));
计数++;
//在数据库中填充数据
DateTime datt=dat;
字符串[]p3=
<control id="name1">
  <control id="name1_1"></control>
  <control id="name1_2"></control>
  <control id="name1_3">
    <control id="name1_3_1">value</control>
  </control>
</control>
name1.FindControl("name1_3_1"); //Assuming they are all server-side controls, so runat="server" marked.