首页新闻找找看学习计划

asp.net 动态添加控件 遇到的麻烦

0
悬赏园豆:15 [已关闭问题] 关闭于 2013-02-04 12:32

最近做上传功能,遇到这样的需求,动态生成控件,想传多少个传多少个。

发现如下问题不能解决,还望朋友们想想办法。

1.用js生成控件

前台代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="上传多个图片.WebForm3" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script language="JavaScript" type="text/javascript">
        function add() {
            var obtn = document.createElement("input");
            obtn.setAttribute("type", "file");
            obtn.setAttribute("runat", "server");
            obtn.setAttribute("id","Hello");
            document.body.appendChild(obtn); //注意如果有form表单不要忘记加入表单
        }
    </script>
</head>
<body>
    <form id="form1" method="post"  runat="server" >
      <div align="center">
        <h3>多文件上传</h3>
        <P id="MyFile"></P>
        <P>
          <input type="button" value="增加(Add)" onclick="add()"/>
          <input onclick="this.form.reset()" type="button" value="重置(ReSet)"/>
          <asp:Button Runat="server" Text="开始上传" ID="UploadButton" 
                onclick="UploadButton_Click"></asp:Button>
        </P>
        <P>
        </P> 
      </div>
    </form>

</body>
</html>

 后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace 上传多个图片
{
    public partial class WebForm3 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void UploadButton_Click(object sender, EventArgs e)
        {
            Control my = this.form1.FindControl("Hello");
            if (my != null)
            {
                Response.Write("Hello");
            }
            else
            {
                Response.Write("No");
            }
        }
    }
}

总是显示NO,并且生成多个上传控件后,页面源文件中没有代码,就获取不到ID,就不能上传。。。。

请问这要如何解决?

UncleNull的主页 UncleNull | 初学一级 | 园豆:3
提问于:2012-12-01 19:09
< >
分享
所有回答(3)
0

你的 上传控件是用 javascript 生成的,不属于服务器控件,在服务器端肯定找不到。

要用 Request.Files 才能到值,建议控件 name 属性设成不一样。

geass.. | 园豆:1777 (小虾三级) | 2012-12-01 21:47
0

游览器中通过JS来创造的控件,可以用request["控件的name属性"]来获取值

chenping2008 | 园豆:9836 (大侠五级) | 2012-12-02 16:57
0

使用 js写出来的 控件怎么在其他js里面获取到那个js呢

beio | 园豆:173 (初学一级) | 2013-03-25 22:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册