在ASP.NET中AjaxFileUpload成功/失败时无法显示标签消息

时间:2013-01-03 04:54:46

标签: asp.net file-upload ajaxuploader

我想使用AjaxFileUpload控件上传文件。这很好。问题是我无法在上传的Label文件中显示成功/失败消息。

.aspx code ..

<form id="form1" runat="server">
    <div>
    <div></div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel2" runat="server">
            <ContentTemplate>
                <asp:Label runat="server" ID="myThrobber" Style="display: none;"><img align="absmiddle" alt="" src="images/uploading.gif"/></asp:Label>
                <asp:AjaxFileUpload ID="AjaxFileUpload1" 
                    runat="server" 
                    OnUploadComplete="AjaxFileUpload1_UploadComplete" 
                    OnClientUploadError="uploadError" 
                    OnClientUploadComplete="uploadComplete"
                    ThrobberID="myThrobber"
                    MaximumNumberOfFiles="1"
                    AllowedFileTypes="" 
                    class="name_text1" 
                    Width="200px" />
                <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
                <asp:Button ID="BtnClose" runat="server" Text="Close" 
                   onclick="BtnClose_Click" OnClientClick="Closepopup()"/>

                <asp:Label ID="Label2" runat="server" Text=""></asp:Label>

                <br />
            </ContentTemplate>
        </asp:UpdatePanel>

    </div>
    </form>

我想在Label2上显示上传或未上传文件的文字。 我的.cs代码:

protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
 string message = "Storege Space is Exceeding its Limit";
                    Label2.Text = message;
}

如何在Label上显示讯息?任何Suggesstion?帮助赞赏

3 个答案:

答案 0 :(得分:0)

由于更新面板可能会出现问题,

您已将AjaxFileUpload放入更新面板中, 因此,当AjaxFileUpload1_UploadComplete事件中的标签填充文本时,更新面板控件不会更新所有控件。

因此请在删除更新面板后尝试或设置更新面板的属性UpdateMode =“Conditional”。

希望这有助于解决您的问题。

答案 1 :(得分:0)

最新版本的ajax文件上传带有更新进度。因此,如果您使用它,则不必添加标签来显示失败/成功文本。 有关更多信息和演示,请参阅此页面:http://stephenwalther.com/archive/2012/05/01/ajax-control-toolkit-may-2012-release.aspx

答案 2 :(得分:0)

function ReBindMaterialsGrid() {
    if (rebindTimer == null) {
        SetRebindTimeout();
    } else {
        clearTimeout(rebindTimer);
        SetRebindTimeout();
    }
}
function SetRebindTimeout() {
    rebindTimer = setTimeout(
        'var btn = document.getElementById("MainContent_AdminTabs_TabContainerMain_TabPanelMaterials_Materials_btnReBindGrid");' +
        'btn.click();', 8888);
}

                                                       <asp:UpdatePanel ID="UpdatePanelUpload" runat="server">
                                                        <ContentTemplate>
                                                            <asp:Label runat="server" ID="lblThrobber" Style="display: none;">
                                                    <img src="../../Images/loading.gif" alt="Loading..." />
                                                            </asp:Label>
                                                            <asp:HiddenField ID="hdStitchAssetPathUpload" Value='<%# Eval("StitchAssetPath") %>'
                                                                runat="server" />
                                                            <asp:AjaxFileUpload ID="AjaxFileUploadPlank" ThrobberID="lblThrobber" runat="server"
                                                                OnUploadComplete="AjaxFileUploadPlank_UploadComplete" OnClientUploadComplete="ReBindMaterialsGrid" />
                                                        </ContentTemplate>
                                                    </asp:UpdatePanel>