FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 2968|回复: 7
打印 上一主题 下一主题

【已解决】PageMamager如果不放在Form中,FileUpload会失效

[复制链接]
跳转到指定楼层
楼主
发表于 2013-6-7 16:55:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Lisa 于 2013-6-13 11:40 编辑

代码写的比较乱,先不贴了。
现象就是只要在<xageManager ID="ageManager1" runat="server" AutoSizePanelID="anel1sss" />设置了AutoSizePanelID属性
那么FileUpload的HasFile就为False。

我动态添加了好多控件,嵌套了好多层,想不清楚是什么原因,排查了快一天才找出来。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
 楼主| 发表于 2013-6-13 10:46:48 | 只看该作者
求解决这个问题啊
板凳
发表于 2013-6-13 10:58:13 | 只看该作者
用空项目写个重新问题的例子
地板
 楼主| 发表于 2013-6-13 11:28:28 | 只看该作者
sanshi 发表于 2013-6-13 10:58
用空项目写个重新问题的例子

sanshi哥,整理例子的时候我作了个小改动,问题就解决了。
原来我是把<xageManager ID="ageManager1" runat="server" AutoSizePanelID="SimpleForm1" />放在<form id="form1" runat="server">  </form>的外面,现在是放在了里面,这个FieleUpload就可以用了。

现在的现象是:如果<xageManager ID="ageManager1" runat="server" />不加AutoSizePanelID属性,那么放在<form id="form1" runat="server"> </form>的外面和里面,FileUpload都可以用。
如果加上AutoSizePanelID属性,那么只有放在Form里面,FileUpload才可以用。
5#
发表于 2013-6-13 11:31:16 | 只看该作者
Lisa 发表于 2013-6-13 11:28
sanshi哥,整理例子的时候我作了个小改动,问题就解决了。
原来我是把放在  的外面,现在是放在了里面, ...

哦,那就不是BUG了。

我就在想 AutoSizePanelID 是个UI属性,怎么会牵涉到上传的逻辑中来呢?


PageManager 必须要放在 form 里面。
6#
 楼主| 发表于 2013-6-13 11:31:58 | 只看该作者
本帖最后由 Lisa 于 2013-6-13 11:33 编辑

这是用空项目做的例子
test.aspx
  1. <body>
  2.     <x:PageManager ID="PageManager1" runat="server"  AutoSizePanelID="SimpleForm1"/>
  3.     <form id="form1" runat="server">
  4.         <x:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" EnableBackgroundColor="true"
  5.             ShowBorder="True" Title="表单" Width="350px" ShowHeader="True">
  6.             <Items>
  7.                 <x:Image ID="imgPhoto" CssClass="photo" ImageUrl="~/images/blank.png" runat="server">
  8.                 </x:Image>
  9.                 <x:FileUpload runat="server" ID="filePhoto" ShowRedStar="false" LabelSeparator=""
  10.                     ButtonText="上传个人头像" ButtonOnly="true" Required="false" ShowLabel="true" Label="&nbsp;"
  11.                     AutoPostBack="true" OnFileSelected="filePhoto_FileSelected">
  12.                 </x:FileUpload>
  13.                 <x:TextBox runat="server" Label="用户名" ID="tbxUserName" Required="true" ShowRedStar="true">
  14.                 </x:TextBox>
  15.                 <x:TextBox runat="server" Label="邮箱" ID="tbxEmail" Required="true" RegexPattern="EMAIL"
  16.                     ShowRedStar="true">
  17.                 </x:TextBox>
  18.                 <x:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" ValidateForms="SimpleForm1"
  19.                     Text="提交表单">
  20.                 </x:Button>
  21.             </Items>
  22.         </x:SimpleForm>
  23.         <x:Label ID="labResult" CssClass="result" EncodeText="false" runat="server">
  24.         </x:Label>
  25.     </form>
  26. </body>
复制代码
test.aspx.cs
  1.         protected void Page_Load(object sender, EventArgs e)
  2.         {

  3.         }

  4.         protected void filePhoto_FileSelected(object sender, EventArgs e)
  5.         {
  6.             if (filePhoto.HasFile)
  7.             {
  8.                 string fileName = filePhoto.ShortFileName;
  9.                 fileName = fileName.Replace(":", "_").Replace(" ", "_").Replace("\", "_").Replace("/", "_");
  10.                 fileName = DateTime.Now.Ticks.ToString() + "_" + fileName;

  11.                 filePhoto.SaveAs(Server.MapPath("~/upload/" + fileName));

  12.                 imgPhoto.ImageUrl = "~/upload/" + fileName;

  13.                 // 清空文件上传组件
  14.                 filePhoto.Reset();
  15.             }

  16.         }


  17.         protected void btnSubmit_Click(object sender, EventArgs e)
  18.         {
  19.             if (imgPhoto.ImageUrl == "~/images/blank.png")
  20.             {
  21.                 filePhoto.MarkInvalid("请先上传个人头像!");

  22.                 Alert.ShowInTop("请先上传个人头像!");

  23.                 return;
  24.             }

  25.             labResult.Text = "<p>用户名:" + tbxUserName.Text + "</p>" +
  26.                     "<p>邮箱:" + tbxEmail.Text + "</p>" +
  27.                     "<p>头像地址:" + imgPhoto.ImageUrl + "</p>";

  28.             // 清空表单字段(注意,不要清空imgPhoto,否则就看不到上传的头像了)
  29.             filePhoto.Reset();
  30.             tbxEmail.Reset();
  31.             tbxUserName.Reset();

  32.         }
复制代码
就是在线示例“上传控件(自动回发)”的改动。
http://fineui.com/demo/#/demo/form/fileupload_autopostback.aspx
7#
 楼主| 发表于 2013-6-13 11:34:42 | 只看该作者
sanshi 发表于 2013-6-13 11:31
哦,那就不是BUG了。

我就在想 AutoSizePanelID 是个UI属性,怎么会牵涉到上传的逻辑中来呢?

OK,多谢
8#
发表于 2013-6-13 11:35:02 | 只看该作者
Lisa 发表于 2013-6-13 11:31
这是用空项目做的例子
test.aspxtest.aspx.cs就是在线示例“上传控件(自动回发)”的改动。
http://fineui ...

不用试了。

PageManager 必须要放在 form 里面!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-24 17:35 , Processed in 0.047164 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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