VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 616|回复: 6

如何查找”上传控件“的时候只获得当前用户控件,而不是整个页面的

[复制链接]

2

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-22 15:30:01 | 显示全部楼层 |阅读模式
CS:
HttpFileCollection  files    =  HttpContext.Current.Request.Files;  
try  
{  
  for(int  iFile  =  0;  iFile  <  files.Count;  iFile++)  
  {  
    HttpPostedFile  postedFile  =  files[iFile];  
    string  fileName,  fileExtension;  
    fileName  =  System.IO.Path.GetFileName(postedFile.FileName);  
    ...
  }
}
ASPS:
<INPUT id="upfile"  type="file" name="File" runat="server">
这是用户控件的
但当我的页面添加多个这个用户控件的时候上面的代码也会上传别的用户控件的上传控件

请问我要怎么改
HttpFileCollection  files    =  HttpContext.Current.Request.Files;  
成只会获取当前用户控件而不是整个页面的“file”控件
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-7-1 13:30:01 | 显示全部楼层
1.根据控件名称,用FindControls来找.

2.根据父控件循环所有子控件来找.如:当前用户控件中放个Panel然后循环它的子控件.

Request 对整个页面都是同一对象,所以不能直接用Request.Files
回复

使用道具 举报

2

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-7-2 02:30:01 | 显示全部楼层
HttpContext.Current.Request.Files[this.upfile.ClientID];
本来我想这样的集合中的名称也不行
回复

使用道具 举报

2

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-7-2 13:15:01 | 显示全部楼层
(HttpFileCollection)this.FindControl("upfile");
这种方法做HttpFileCollection又不是服务器控件
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-7-2 14:00:01 | 显示全部楼层
还可以这样做.


                        foreach(string sFileControl in Request.Files)
                        {
                                if(sFileControl.IndexOf(this.ClientID.ToString())>-1)
                                {
                                        //表示这个控件是自己的.
                                }
                        }
回复

使用道具 举报

2

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-7-3 13:30:01 | 显示全部楼层
HttpFileCollection  files    = HttpContext.Current.Request.Files;  
                        try  
                        {  
                                for(int  iFile  =  0;  iFile  <  files.Count;  iFile++)  
                                {  
                                        foreach(string sFileControl in files)
                                        {
                                                if(sFileControl.IndexOf(upfile.ClientID.ToString())>-1)
                                                {
                                                        HttpPostedFile  postedFile  =  files[iFile];  
不行通不过
回复

使用道具 举报

2

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-7-3 14:00:01 | 显示全部楼层
HttpFileCollection  files    = HttpContext.Current.Request.Files;  
try  
{  
  for(int  iFile  =  0;  iFile  <  files.Count;  iFile++)  
  {  
    foreach(string sFileControl in files)
    {
      if(sFileControl.IndexOf(upfile.ClientID.ToString())>-1)
      {
        HttpPostedFile  postedFile  =  files[iFile];  
         ....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表