private void CreatePanel()
    {
        AjaxControlToolkit.TabContainer tc = new AjaxControlToolkit.TabContainer();
        string[] str = new string[9] { "M", "A", "B", "C", "D", "E", "F", "G", "H" };
        int k = 0;
        foreach (DataRow dr in sql.GetDataSet("select * from Item").Tables[0].Rows)
        {
            k++;
            AjaxControlToolkit.TabPanel tp = new AjaxControlToolkit.TabPanel();
            string name = dr["Item_Name"].ToString();
            string html = "";
            tp.HeaderText = dr["Item_Name"].ToString();
            html += "<p style='padding-top:0px; padding-bottom:2px; padding-left:0px; margin-bottom:5px;'>";
            html += dr["Item_Description"].ToString();
            html += "</p>";
            html += "<table  border='0' cellpadding='0' cellspacing='1' bgcolor='#707b8d' width='547px'style=' margin-left:0px;font-size:11px;'>";
            html += "<tr bgcolor='#edf1f3'>";
            html += "<td align='center' height='22px' style='width:30px;'>";
            html += "编号";
            html += "</td>";
            html += "<td align='center'valign='middle' style='width:120px;'>";
            html += "项目名称";
            html += "</td>";
            html += "<td align='center'valign='middle' style='width:350px;'>";
            html += "项目描述";
            html += "</td>";
            html += "<td align='center'valign='middle' style='width:55px;'>";
            html += "需要打√";
            html += "</td>";
            html += "</tr>";            int b = 0;
            foreach (DataRow dr1 in sql.GetDataSet(string.Format("select * from Project where Item_Id={0}", int.Parse(dr["Item_Id"].ToString()))).Tables[0].Rows)
            {
                b++;
                html += "<tr bgcolor='#FFFFFF'>";
                html += "<td align='center'>";
                html += str[k].ToString() + b.ToString();
                html += "</td>";
                html += "<td>";
                html += dr1["Name"];
                html += "</td>";
                html += "<td>";
                html += dr1["Description"];
                html += "</td>";
                html += "<td align='center'>";
                if ((bool)dr1["Status"])
                {
                    html += "<input id='Checkbox1' type='checkbox' checked=true />";
                }
                else
                {
                    html += "<input id='Checkbox1' type='checkbox' />";
                }
                html += "</td>";
                html += "</tr>";
            }
            html += "</table>";
            html += "<p style='padding-top:5px; padding-bottom:2px; padding-left:0px; margin-bottom:8px;'>";
            html += "其他" + name + "(如需增加其他项目描述,请在下面填写)";
            html += "</p>";
            html += "<p>";
            html += "<textarea id='TextArea1' cols='20' rows='2' style='width: 540px;height:50px;'>";
            html += "</textarea>";
            html += "</p>";
            Label lb = new Label();
            lb.Text = html;
            tp.Controls.Add(lb);
            tc.Controls.Add(tp);
        }        AjaxControlToolkit.TabPanel tp1 = new AjaxControlToolkit.TabPanel();
        tp1.HeaderText = "其他设备信息";
        Label lbs = new Label();
        lbs.Text = "如还有其他设备信息需要描述,请在下面填写";
        TextBox tb = new TextBox();
        tb.TextMode = TextBoxMode.MultiLine;
        tb.Height = 100;
        tb.Width = 540;
        tp1.Controls.Add(lbs);
        tp1.Controls.Add(tb);
        tc.Controls.Add(tp1);
        Panel1.Controls.Add(tc);
    }
我动态生成一个AJAX TabContainer 控件,但是我要怎么获取控件生成的 checkbox,textarea 的值,并能在后台.cs进行访问呢。
或者有其他的办法生成CheckBox,TextBox吗?只要能动态的生成和读取就行了,谢谢大家了。

解决方案 »

  1.   

    写javascript脚本异步发送到服务端通过requist获取数据再进行相应的操作
      

  2.   

    http://www.360doc.com/content/080605/19/59179_1312206.htmlhttp://www.cnblogs.com/nasdaqhe/archive/2006/11/17/563592.html
    百度:asp.net动态生成控件
      

  3.   

    在服务器控件事件里面写
    request.Form["你的客户端控件名称"]获取对应的控件值
      

  4.   


    private void Page_Load(object sender, System.EventArgs e)
            {
                // 在此处放置用户代码以初始化页面
                if(Session["p_userid"]==null||Session["p_loginName"]==null||Session["p_created"]==null)
                {
                    Response.Write("<script>alert('请先登陆');location.href='../loginProc/login.aspx';</script>");
                    Response.End();
                }
                else
                {
                    Panel1.Controls.Add(new LiteralControl("<table>"));
                    Panel1.Controls.Add(new LiteralControl("\n"));
                    SqlCommand cmd=new SqlCommand("select infos.* from infos,infoGroups where infos.infoGroup_id = infoGroups.id and infoGroups.title='联系方式' order by infos.pri",connPartner);
                    SqlDataAdapter da=new SqlDataAdapter();
                    DataSet ds=new DataSet();
                    da.SelectCommand=cmd;
                    da.Fill(ds,"infos");
                    for (int i=0;i<ds.Tables[0].Rows.Count;i++)
                    {
                        Panel1.Controls.Add(new LiteralControl("<tr>"));
                        TableCell cell = new TableCell();//创建单元格,也就是第一列
                        cell.Text=ds.Tables[0].Rows[i]["title"].ToString();//设置单元格内的文本
                        Panel1.Controls.Add(cell);
                        Panel1.Controls.Add(new LiteralControl("<td>"));
                        TextBox textBox=new TextBox();
                        textBox.ID="t"+ds.Tables[0].Rows[i]["id"].ToString();
                        Panel1.Controls.Add(textBox);
                        Panel1.Controls.Add(new LiteralControl("</td>"));
                        Panel1.Controls.Add(new LiteralControl("<td>"));
                        Label lb=new Label();
                        lb.ID="l"+ds.Tables[0].Rows[i]["id"].ToString();
                        lb.Text="&nbsp;"+ds.Tables[0].Rows[i]["tip"].ToString();
                        lb.CssClass="registerInfo";
                        Panel1.Controls.Add(lb);
                        Panel1.Controls.Add(new LiteralControl("</td>"));
                        Panel1.Controls.Add(new LiteralControl("</tr>"));
                        Panel1.Controls.Add(new LiteralControl("\n"));
                    }
                    
                    Button rebt=new Button();
                    rebt.ID="redirect";
                    rebt.Text=" 不填了 ";
                    rebt.Click+=new EventHandler(rebt_Click);
                    Panel1.Controls.Add(rebt);
                }
            }
    private void rebt_Click(object sender, EventArgs e)
            {
                Response.Redirect("../partnerProc/default.html");
            }
    访问动态生成控件,可以通过FindControl方法,代码如下:
    for(int i=0;i<ds.Tables[0].Rows.Count;i++)
                {
                    Label lb;
                    lb=(Label)Panel1.FindControl("l"+ds.Tables[0].Rows[i]["id"].ToString());
                    if(lb!=null)
                    {
                        lb.Text="&nbsp;"+ds.Tables[0].Rows[i]["tip"].ToString();
                        lb.CssClass="registerInfo";
                    }
                }