abc.aspx 页代码如下:<HTML>
<HEAD>
<title>同时产生多个文本框</title>
<script language="javascript">
var i = 1;
function addFile()
{
  var dv = document.getElementById("dvFiles");  var file = document.createElement("input");
  file.type = "text";
  file.id = file.name = "file" + i;  dv.appendChild(file);
  dv.appendChild(document.createElement("BR"));  i++;
}
</script> </HEAD><body>
<form id="form1" method="post" runat="server" enctype="multipart/form-data">
<table width="890" align="center" height="250" border="1">
  <tr>
    <td>名称:<input id="title" name="title"></td>
  </tr>
  <tr>
    <td>位置:<INPUT id="Text1" name="title"></td>
  </tr>
  <tr>
   <td><div id="dvFiles"></div></td>
  </tr>
  <tr>
   <td><input type="button" value="增加一个文本框" onclick="addFile()"></td>
  </tr>
  <tr>
    <td><asp:Button Runat="server" Text="发布信息" ID="Upload"></asp:Button></td>
  </tr>
</table>
</form>
</body>
</html>------------------------------------------------------------
abc.aspx.CS 页代码如下:
private void Upload_Click(object sender, System.EventArgs e)
{
   //这里要如何能得到由 “增加一个文本框” 产生的 input 的值,并插入数据库呢?

}

解决方案 »

  1.   

    private void Upload_Click(object sender, System.EventArgs e)
    {
       //这里要如何能得到由 “增加一个文本框” 产生的 input 的值,并插入数据库呢?

       string tmp = Request.Form("file1");//不保证有用...
    }
      

  2.   


    4红星的老大:“增加一个文本框”可不是就是只有一个文本框,可以动态产生多个 input 的!!!!!!!!!!就是这个效果:http://www.yibaiban.com/dem.aspx
    -------------------------------------------------------------------------最起码要这样:private void Upload_Click(object sender, System.EventArgs e)
    {
       //这里要如何能得到由 “增加一个文本框” 产生的 input 的值,并插入数据库呢?

       string[] tmp = .....
    }
      

  3.   

    可以这样写
    jscript 改为
    <script language="javascript">
    var i = 1;
    function addFile()
    {
    var dv = document.getElementById("dvFiles"); var file = document.createElement("input");
    file.type = "text";
    file.id =i;
     file.name = "title"; dv.appendChild(file);
    dv.appendChild(document.createElement("BR")); i++;
    }
    </script>
    c# 里的
    private void Upload_Click(object sender, System.EventArgs e)
    {
    Response.Write(Request["title"].ToString());
    }你点发布 后 会出现一个 跟 input 框 顺序一样的 用 逗号阁开的 字符传 你可以 对应里边的
    内容进行操作
      

  4.   

    如果i是连续的,不会被删除,可以这么写:
    int i = 1;
    while (true) {
      string file_value = Request.Form("file" + i); // 获得值
      if (file_value == null) { // 找不到该input
        break; // 已经搜索完毕
      }
      ... // 具体处理
    }
    如果i不一定是连续的,可以这么写:
    string[] keys = Request.Form.AllKeys; // 所有被提交表单元素的key
    int length = keys.length;
    for (int i = 0; i < length; i++) {
      string key = keys[i]; // 遍历key
      if (key.StartWith("file")) { // 符合命名规则
        string file_value = Request.Form[key]; // 获得值
        ... // 具体处理
      }
    }
      

  5.   

    string[] keys = Request.Form.AllKeys; // 所有被提交表单元素的key
    这样不行吧,这不是把所有表单内的控件值全取过来了吗,我只要动态产生的那几个 input 的值!!
      

  6.   

    AllKeys只是取key,就是所有input的名字,然后循环遍历。一般一个form的元素并不多,这样做绝对没问题。
      

  7.   


    如果前台动态生成的input 的 type 是 file (就是上传文件) 的话:现在我的程序后台 .CS 取值是这样的:HttpFileCollection fileList = HttpContext.Current.Request.Files;如果把 javascript 脚本改一下:加上了这句  file.name = "title";那么如何把 HttpFileCollection fileList = HttpContext.Current.Request.Files;
    改成
    HttpFileCollection fileList = HttpContext.Current.Request......//就是只要 file.name = "title" 的文件,不然的话,会把页面内的所有 file 全取过来,包括页面内的其它的file
      

  8.   

    file.type = "text"; // 说明不是input type="file"。
      

  9.   

    file.type = "text"; // 说明不是input type="file"。说的没错,但是现在我要做的是  input type="file"。
      

  10.   

    AllKeys只是取key,不会取到文件。我想,应该也还是可以用的吧。楼主试过了没有?
      

  11.   

    Request["title"]肯定行
    我做的同你一模一样就是这样取值的
    最好他们的name使用不同的名最好了,然后用一个for来取出每一个
      

  12.   

    招.net开发工程师,有兴趣的可以投递简历至: 
    [email protected]