string i="<asp:button id=\"NewItem1\" Runat=\"server\" Text=\"New Item1\"></asp:button>";
Literal1.Text=i;问题是:用了这段代码,网页上无法显示出那个button控件

解决方案 »

  1.   

    string i="<input type=\"button\" id=\"NewItem1\" Runat=\"server\" Text=\"New Item1\">";
    Literal1.Text=i;试试
      

  2.   

    感谢  hackate(~兰心*-*寒~ | 网站: http://www.7to.net)还有个问题要请教一下
    private void Button1_Click(object sender, System.EventArgs e)
    {
    Panel1.Controls.Add(new LiteralControl("<br>"));
    ArrayList list=new ArrayList(); foreach(string i in newlist)
    {
                      System.Web.UI.WebControls.TextBox Text_Name=new System.Web.UI.WebControls.TextBox();
             Text_Name.ID="Text_Name_"+i;
                      Panel1.Controls.Add(Text_Name);
             Panel1.Controls.Add(new LiteralControl("<br>"));
    }
             ViewState["AddTextBox"] = true;
    }
    这样是可以创建了,可是我想从我动态创建的textbox中读取数据该怎么做啊????
      

  3.   

    首先你要搞清楚服务器控件和客户端控件之间的区别。
    如果按照你的方法做,将会在页面上直接显示<asp:Button...的内容,但是这些是无法被浏览器识别。动态生成控件的方法简单描述如下:
    1、在服务器上创建控件
       Button btn = new Button();
    2、设置控件的属性
       btn.ID = "NewItem1";
       btn.Text = "New Item1";
    3、将该控件添加到控件树中
       this.Controls.Add(btn);
       this是当前控件的实例(通常是Page或者DataGridItem或者DataGridCell等的一个实例)
      

  4.   

    可以使用FindControl函数查找某控件中的子控件(例如:Contorl ctl = this.Page.FindControl("Text_Name_"+i.ToString())),在使用前请确保查找的控件已经正确的添加到控件树中。
      

  5.   

    to:cuike519(marshal) 我用了你的方法,准备在Label1中显示我创建的TextBox的id,可是每次都失败。
    System.Web.UI.Control ctl = this.Page.FindControl("Text_1");
    Label1.Text=ctl.ID;“/Web”应用程序中的服务器错误。
    --------------------------------------------------------------------------------未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 99:  {
    行 100: System.Web.UI.Control ctl = this.Page.FindControl("Text_Name_CPU");
    行 101: Label1.Text=ctl.ID;
    行 102: }
    行 103: }
     源文件: c:\inetpub\wwwroot\web\service\ui\webform1.aspx.cs    行: 101 堆栈跟踪: 
    [NullReferenceException: 未将对象引用设置到对象的实例。]
       Web.Service.UI.WebForm1.Button2_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\web\service\ui\webform1.aspx.cs:101
       System.Web.UI.WebControls.Button.OnClick(EventArgs e)
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
       System.Web.UI.Page.ProcessRequestMain() 
    --------------------------------------------------------------------------------
    版本信息: Microsoft .NET Framework 版本:1.1.4322.2032; ASP.NET 版本:1.1.4322.2032
      

  6.   

    你控件都还没有加进去,怎么会找得到?
    Button mybut = new Button();
    mybut.ID = NewItem1
    mybut.Text = "newitem1";
    this.Literal1.Control.Add(mybut);
    之后再去找.
    你这个基础太糟糕了,建议从更基础学起
      

  7.   

    to: hchxxzx(net学习中) ( ) 信誉:98 c:\inetpub\wwwroot\Web\Service\UI\WebForm1.aspx.cs(99): “System.Web.UI.WebControls.Literal”并不包含对“Control”的定义
      

  8.   

    是Controls,这里写的是手写的,没有经过验证。
    this.Literal1.Controls.Add问题是:你验证的时候也要自己看一下啊。
      

  9.   

    服了你了,asp:button这类的都不能直接就送到客户端的,它是转成input type=submit再送过去,你可以这样写string i = @"<input type='button' value='按钮' id='btn'>";
      

  10.   

    回复人: hchxxzx(net学习中) ( ) 信誉:98 
    你这个基础太糟糕了,建议从更基础学起
    ---------同感