你这样写的  runat="server"是没有用的,
给这个textbox加个 name,然后用Request.Form["ElementName"]来接收
当然.这个要放在<FORM>中间

解决方案 »

  1.   

    将id 改成或加个name属性
    Response.Write("<input type=\"text\" runat=\"server\" name=\""+reader.GetValue(0).ToString+"\">");
    就可以用以下得到
    Request.From[reader.GetValue(0).ToString]
      

  2.   

    这样是不可以的,用Response.Write输出的内容是在<html>标签的上方所以不在<form name="Form1" method="post" action="WebForm1.aspx" id="Form1">和</form>之间也就不可能实现提交。
    可以在<form></form>中添加控件 如<asp:Literal id="Literal1" runat="server"/>
    然后用 Literal1.Text="<input type=\"text\" runat=\"server\" id=\""+reader.GetValue(0).ToString+"\">";
    并在.cs文件声名该html服务器控件
    protected System.Web.UI.HtmlControls.HtmlInputText input1;
    就应该可以直接在.cs文件里对该 input1操作了
    但你这里的id是变的所以无法作这个声明了就用
    Request.Form["ElementName"]来接收没试过,但觉得应该是这样,你可以试下