Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文件上载控件不工作';外部';AJAX更新面板,但可以工作';内部';用回发触发器?_C#_Asp.net_Ajax_File Upload - Fatal编程技术网

C# 文件上载控件不工作';外部';AJAX更新面板,但可以工作';内部';用回发触发器?

C# 文件上载控件不工作';外部';AJAX更新面板,但可以工作';内部';用回发触发器?,c#,asp.net,ajax,file-upload,C#,Asp.net,Ajax,File Upload,我希望我的问题能简单回答 我正在用一个文件上传控件制作一个简单的表单,这个控件一开始没有在AJAX面板中使用,在我的一生中,我无法理解为什么我的代码(保持不变)找不到文件上传控件的内容 <asp:Panel ID="pnlUpload" runat="server" class="workerDetailsPanelLeft" Visible="true"> <h3 class="titleHighlightStyle">Probation Documents</

我希望我的问题能简单回答

我正在用一个文件上传控件制作一个简单的表单,这个控件一开始没有在AJAX面板中使用,在我的一生中,我无法理解为什么我的代码(保持不变)找不到文件上传控件的内容

<asp:Panel ID="pnlUpload" runat="server" class="workerDetailsPanelLeft" Visible="true">

<h3 class="titleHighlightStyle">Probation Documents</h3><br />
<table cellspacing="0">
<tr>
<td class="standardLabel" valign="top">Current Documents</td>
<td colspan="2">
<asp:ListBox ID="lstDocs" runat="server" Width="200px"></asp:ListBox>
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
<td>
<asp:ImageButton ID="btnSelect" runat="server" SkinID="selectprobationdoc"/>
</td>
<td class="standardLabel" style ="width:200px">Select documents</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td class="standardLabel">Upload Documents</td>
<td colspan="2">
<asp:FileUpload ID="uplDoc" runat="server" Height="22px" Width="200px"/> 
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
<td>
<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" CausesValidation="False" />
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblUploadError" runat="server" Text="Probation document required" ForeColor="Red" Visible="false"></asp:Label> 
</td>
</tr>
</table>             
</asp:Panel>
以上是初始代码隐藏检查,这在更新面板中从未更改

有人能帮我理解我错过了什么吗


谢谢

回答起来很简单

承载内容页的母版页将这些页包装在更新面板中,因此我的代码没有获取文件上载控件的内容,而是执行异步回发,而不是完全回发


无论如何感谢@Shai

让我猜猜,
pnlUpload
在开始时对客户端是不可见的,但是在某个时候,您将它的visibily设置为
true
(或者以某种方式将其显示给客户端),对吗?是的,首先更正它的隐藏确定,尝试将这一行添加到您的
Page\u Load
事件:
ScriptManager.GetCurrent(此).RegisterPostBackControl(uplDoc)谢谢Shai,以后我会记住的:)
<asp:UpdatePanel ID="ContentPanel" UpdateMode="Conditional" runat="server" ChildrenAsTriggers="true">
<Triggers>
<asp:PostBackTrigger ControlID="btnSave" />
</Triggers>
<ContentTemplate>
  *Markup as above*
            if (this.uplDoc.HasFile)
        {
            String fileExtension = System.IO.Path.GetExtension(uplDoc.FileName).ToLower();
            String validExt = sAllowedExt;

            if (validExt.IndexOf("," + fileExtension + ",") != -1)
            {
                if (this.uplDoc.FileBytes.Length >= 0)
                {
                    return string.Empty;
                }
                else
                {
                    return "PROC0003";  //Invalid File Size            
                }
            }
            else
            {
                return "PROC0002"; //Invalid file type        
            }
        }