【问题标题】:File upload control not working inside Update panel even after postback trigger即使在回发触发后,文件上传控件在更新面板中也不起作用
【发布时间】:2014-05-06 06:52:59
【问题描述】:

我面临一个奇怪的问题:文件上传在更新面板中不起作用。我知道这是常见问题,但是常见的解决方案在这里不起作用。 即我已尝试使用回发触发器作为上传按钮。

代码如下:

<asp:UpdatePanel runat="server">
                <ContentTemplate>
                    <div runat="server" id="divAttachments" style="margin-top: 10px;">
                        <div class="attachment collapsableDiv" onclick="HideShowAttachments();" style="margin-left: auto;
                            margin-right: auto;">
                            <img id="imgStatusMain" src="../Images/open.gif" class="showHide rightImage" runat="server" />&nbsp;
                            Attachments <span class="mandatory">*</span>
                        </div>
                        <div id="attachmentDiv" style="margin-left: auto; margin-right: auto;">
                            <asp:GridView runat="server" ID="gvAttachments" CssClass="innerGrid" EmptyDataText="No attachments added"
                                DataKeyNames="Id" AutoGenerateColumns="false" OnRowDataBound="gvAttachments_RowDataBound"
                                OnRowCommand="gvAttachments_RowCommand">
                                <Columns>
                                    <asp:TemplateField HeaderText="File name">
                                        <ItemTemplate>
                                         <asp:LinkButton
                                                runat="server" ID="gvlblFileName" Text='<%#Eval("FileName") %>' OnClick="gvlblFileName_Click"></asp:LinkButton>
                                            <asp:HiddenField runat="server" ID="hfFileName" Value='<%#Eval("Id") %>' />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Action">
                                        <ItemTemplate>
                                            <asp:LinkButton ID="lbtnDelete" runat="server" CausesValidation="False" CommandName="remove"
                                                Text="Delete" ToolTip="Click to delete" CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>'></asp:LinkButton>
                                        </ItemTemplate>
                                        <ItemStyle CssClass="action" />
                                    </asp:TemplateField>
                                </Columns>
                            </asp:GridView>
                            <span class="label" runat="server" id="spnAttachments" style="margin: 10px 10px 10px 50px;">
                                Attachments</span>
                            <asp:FileUpload runat="server" ID="fuAttachements" onchange="UploadFile();" Style="margin: 10px 0px 10px 0px;" /><asp:LinkButton
                                runat="server" ID="lbUploadFile" OnClick="lbUploadFile_Click"></asp:LinkButton>
                        </div>
                    </div>
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="ddlCategory" EventName="SelectedIndexChanged" /> 
                    <asp:PostBackTrigger ControlID="lbUploadFile" />
                </Triggers>
            </asp:UpdatePanel>

而我的cs代码是这样的:

if (string.IsNullOrEmpty(fuAttachements.FileName))
        result.AddError("Please give valid file name.");
    else
    { //code goes here}

我总是得到空白文件名

还有其他解决方案吗?我无法移除更新面板。

我在 Google 上搜索并检查了很多链接,但到处都给出了相同的解决方案

【问题讨论】:

    标签: asp.net file-upload


    【解决方案1】:

    不幸的是,文件上传在更新面板中不起作用; 它从来没有。它需要一个完整的“正常”回发。没有办法解决它。您必须将其移出面板。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 2014-02-12
      • 2013-10-01
      • 1970-01-01
      相关资源
      最近更新 更多