首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FileUpload + UpdatePanel在第一次单击时不起作用

FileUpload + UpdatePanel在第一次单击时不起作用
EN

Stack Overflow用户
提问于 2011-12-06 00:20:32
回答 3查看 4.9K关注 0票数 0

这不仅仅是另一个FileUpload + UpdatePanel问题。

正如在许多类似的帖子中所述,我的表单上有一个UpdatePanel和一个FileUpload控件。我还为我的upload按钮设置了PostBackTrigger。它起作用了。问题是它永远不会在第一次点击时起作用。这就是:

我点击浏览,选择我的文件,然后按upload。无任何反应(fupld.HasFile = false);

我再次点击浏览,选择任何文件(相同或不同),按上载,它可以正常工作。

代码语言:javascript
运行
复制
<asp:UpdatePanel ID="upGeneral" runat="server" >
   <ContentTemplate>
       ...
       <table id="tabPage10" runat="server" visible="false" width="100%" >
          <tr>
              ...
              <td>
                  <asp:FileUpload ID="fupld" runat="server" Width="80%" />
                  <asp:ImageButton ID="ibtnUpld" runat="server" onclick="ibtnUpld_Click" />
              <td>
              ...
          <tr>
       ...
   </ContentTemplate>
   <Triggers>
      <asp:PostBackTrigger ControlID="ibtnUpld" />
   </Triggers>
</asp:UpdatePanel>

我四处寻找答案,但这是一些非常奇怪的行为。到目前为止还没有发现。

有什么想法吗?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-06 01:00:48

FileUpload控件被设计为仅在回发方案中使用,而不在部分页呈现期间的异步回发方案中使用。

http://msdn.microsoft.com/en-us/ysf0192b#using_the_FileUpload_Control_with_the_UpdatePanel_control

您可以使用AjaxControlToolkit中的AsyncFileUpload控件。

代码语言:javascript
运行
复制
<asp:AsyncFileUpload runat="server" ID="asyncFileUpload" Width="400px" ThrobberID="imageThrobber"
   OnClientUploadStarted="uploadStarted" OnClientUploadError="uploadError"
   ClientIDMode="AutoID" PersistFile="true" PersistedStoreType="Session" />

代码隐藏:

代码语言:javascript
运行
复制
     if (asyncFileUpload.HasFile)
     {
        string fullPath = GetPath(asyncFileUpload.FileName);
        asyncFileUpload.SaveAs(fullPath);
     }

我从来没有遇到过任何问题。

票数 4
EN

Stack Overflow用户

发布于 2018-02-20 17:25:04

变化

代码语言:javascript
运行
复制
Visible ="false"

代码语言:javascript
运行
复制
style="display:none"

并从后台代码中更改它。

如果设置为“Visible="false,控件实际上不会呈现为HTML。

要将其呈现为HTML,请使用style = "display:none“代替Visible="false”

票数 0
EN

Stack Overflow用户

发布于 2019-12-22 01:10:11

对于Post back触发器,我必须在后台代码中使用以下代码行:

代码语言:javascript
运行
复制
Page.Form.Enctype = "multipart/form-data";

这个可以很好的工作。

感谢链接中的解决方案- (http://patelshailesh.com/index.php/file-upload-control-fails-first-time-then-works-on-subsequent-submits)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8388340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档