asp.net动态生成控件及访问控件

来源:互联网 发布:宣城太守知不知是谁 编辑:程序博客网 时间:2024/05/29 17:39

http://www.outdosoft.com/dotnet/61447KCU.html

asp.net动态生成控件的方法:
1.在aspx页面放一个Panel控件
2.代码如下:

 

不能放在 If Not IsPostBack Then 里,否则可能访问不到。(可用Page.FindControl(ID)来访问)

 

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=" "+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=" "+ds.Tables[0].Rows[i]["tip"].ToString();                    lb.CssClass="registerInfo";                }            } 


原创粉丝点击