zoukankan      html  css  js  c++  java
  • asp.net动态生成控件及访问控件

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

    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";
                    }

                }

  • 相关阅读:
    揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&开源项目介绍
    打造一个上传图片到图床利器的插件(Mac版 开源)
    游戏编程十年总结(下)
    游戏编程十年总结(上)
    使用“Cocos引擎”创建的cpp工程如何在VS中调试Cocos2d-x源码
    手机网游实时同步方案
    Unity AssetBundle爬坑手记
    Unity3D新手引导开发手记
    敏捷开发随笔(一)高效软件开发之道
    U3D DrawCall优化手记
  • 原文地址:https://www.cnblogs.com/nasdaqhe/p/563592.html
Copyright © 2011-2022 走看看