我在Page_Load事件中有这样一段html代码:
string str="<%@ Page language=\"c#\" Codebehind=\"WebForm1.aspx.cs\" AutoEventWireup=\"false\" Inherits=\"Sbxx.Cggl.Cgd.WebForm1\" %>"+"\n\r";
str += "<html>" + "\n\r";
str += " <head>";
str += " <title>WebForm1</title>" + "\n\r";
str += " <meta name=\"GENERATOR\" Content=\"Microsoft Visual Studio .NET 7.1\">" + "\n\r";
str += " <meta name=\"CODE_LANGUAGE\" Content=\"C#\">" + "\n\r";
str += " <meta name=vs_defaultClientScript content=\"JavaScript\">" + "\n\r";
str += " <meta name=vs_targetSchema content=\"http://schemas.microsoft.com/intellisense/ie5\">" + "\n\r";
str += " </head>" + "\n\r";
str += " <body MS_POSITIONING=\"GridLayout\">" + "\n\r";
str += " <form id=\"Form1\" method=\"post\" runat=\"server\">" + "\n\r";
str += " <asp:textbox id=\"tbx_yddd\" runat=\"server\"></asp:textbox>" + "\n\r";
//str += "            "+gettextbox("test");
str += " </form>" + "\n\r";
str += " </body>" + "\n\r";
str += "</html>" + "\n\r";
this.RegisterClientScriptBlock("clientScript", str);
Response.Write(str);问题是:此语句输入是成功的,但是textbox框没有显示出来,将输入的html语句复制到aspx的前台,显示是成功的,为何呢?

解决方案 »

  1.   

    将代码放在
    if (!IsPostBack)
    {}
    中即可。
      

  2.   

    你有必要这样做吗?
    你把那些非控件的信息写在前台,如果要动态创建的话,再用
    dim tb as new textbox
    tb.id="xxx"
    tb.text="xxx"
    me.controls(1).controls.add(tb)
    就可以了!
    而且象你上面那样输出的话,就不是一个好的选择,只能给你的性能增加负担...
      

  3.   

    象你这样.要不就是使用<input type="text" ruant="server">
    这种形式,不然你这样添加是不可以的!
    因为你添加后变成输出了,也就是说.实际上ASP.NET控件<asp:textbox>这种形式还是需要编译后才输出为HTML<input type="text">到前台的,而你如果直接输出<asp:textbox>那么就不会经过编译,自然就不行了啊。呵呵
      

  4.   

    感谢  hackate(兰花开香入梦境,独思佳人亦飘然!!) ( )
    致敬.