gridview edittemplate 中的文件上传在更新面板中不起作用

Fileupload in gridview edittemplate not working in update panel

我在 gridview edittemplate 中有文件上传控件:

 <asp:TemplateField HeaderText="Template File" ItemStyle-HorizontalAlign="Left">
                                                                    <ItemTemplate>
                                                                        <asp:Label ID="lblTemplateFileName" runat="server" Text='<%# Eval("TemplateFileName")%>'></asp:Label>
                                                                    </ItemTemplate>
                                                                    <EditItemTemplate>

                                                                        <asp:FileUpload ID="fuTemplate" runat="server" />
                                                                        <asp:RequiredFieldValidator ID="rfTemplateFile" Display="Dynamic" ControlToValidate="fuTemplate"
                                                                            runat="server" ErrorMessage="Select the Template File!" ValidationGroup="GRD"
                                                                            Text="*" ForeColor="Red"></asp:RequiredFieldValidator>

                                                                    </EditItemTemplate>
                                                                </asp:TemplateField>

GridView 在更新面板内:

<asp:UpdatePanel ID="upMain" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
...............
..............
</ContentTemplate>

</asp:UpdatePanel>

当通过 rowcommand 我检查 fileuploader.Hasfile 时,尽管它有文件,但它总是显示 false。

我试过为网格和文件上传器设置 postbacktrigger。

但是没有用

我该如何处理这个问题?

请指导我。

也试过添加:

Page.Form.Attributes.Add("enctype", "multipart/form-data");

页面加载时

文件上传将无法使用部分 post 返回。 所以只需在页面加载时添加这一行

ScriptManager.GetCurrent(this).RegisterPostBackControl(this.YourGridviewId);

或使用PostBackTrigger.

<Triggers>
            <asp:PostBackTrigger ControlID="YourGridviewId" />
</Triggers>

或者您需要 AjaxControl 工具包中定义的特殊 AsyncFileUpload 控件。

<ajaxToolkit:AsyncFileUpload OnClientUploadError="uploadError"
     OnClientUploadComplete="uploadComplete" runat="server"
     ID="AsyncFileUpload1" Width="400px" UploaderStyle="Modern"
     UploadingBackColor="#CCFFFF" ThrobberID="myThrobber" />

您可以检查here