UpdatePanel内的图像标记未更新

时间:2012-04-03 14:30:56

标签: c# asp.net updatepanel

我希望你编码好, 我正在处理一个图像上传模块,该模块位于模态弹出窗口中,因此包含在更新面板中,

<asp:UpdatePanel runat="server" ID="UpdateModelPopup" UpdateMode="Conditional" ChildrenAsTriggers="true">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="lnkUploadImage" EventName="Click" />
            </Triggers>
            <ContentTemplate>
                <asp:Panel runat="server" ID="pnlModel" CssClass="ModalWindow">
                    <!-- Style="display: none;" -->
                    <table border="0" class="modalTable" cellspacing="5">
                        <tr>
                            <td>
                                Keywords 2<strong><font color="#FF0000">*</font></strong> &nbsp;<i>(Seperated by , )</i>
                                <br />
                                <asp:TextBox runat="server" ID="txtKeywordsTwo"></asp:TextBox><br />
                            </td>
                            <td>
                                Dimensions <strong><font color="#FF0000">*</font></strong>
                                <br />
                                &nbsp;Width :&nbsp;
                                <asp:TextBox ID="txtDimWidth" runat="server" Width="50px"></asp:TextBox>
                                &nbsp;Height :
                                <asp:TextBox ID="txtDimHeight" runat="server" Width="50px"></asp:TextBox>
                            </td>
                            <tr>
                                <td colspan="2">
                                    <hr />
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    Browse .psd file<br />
                                    <ajaxToolkit:AsyncFileUpload runat="server" ID="pdfFile" Width="200px" OnUploadedComplete="pdfFile_UploadedComplete"
                                        CompleteBackColor="" ErrorBackColor="" OnClientUploadComplete="Success" />
                                    <asp:Image runat="server" ID="imgThumbNail" /><br />
                                    <font color="#FF0000">or</font><br />
                                    Refrence URL<br />
                                    <asp:TextBox ID="TextBox11" runat="server"></asp:TextBox>
                                </td>
                                <td>
                                    Browse file <i>(.jpeg, .gif or .png)</i><strong><font color="#FF0000">*</font></strong><br />
                                    <ajaxToolkit:AsyncFileUpload runat="server" ID="AsyncFileUpload1" Width="200px" />
                                </td>
                            </tr>
                    </table>
                    <asp:Button runat="server" ID="btnUpload" Text="Upload" CssClass="btn" OnClick="btnUpload_Click" />
                </asp:Panel>
            </ContentTemplate>
        </asp:UpdatePanel>

现在根据业务需求,我需要显示用户上传的图像的缩略图,对于.psd文件,我有一个标准图标,我在运行时显示,在我后面的代码中我将文件扩展名验证为.psd文件,然后显示psd图标,我正在尝试设置ImageURL

protected void pdfFile_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
    {
        if (Path.GetExtension(e.FileName).ToString().ToLower() != ".psd")
        {
            string alertMsg = @"alert('Please provide .PSD type file');"; 
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Test", alertMsg, true);
            //pdfFile
        }
        else
        {
            imgThumbNail.ImageUrl ="~/images/psdIcon.jpg";
        }
    }

问题是Panel在运行时没有得到更新,即使页面源显示src =&#34;&#34;。我怀疑它是一个更新小组问题。

请指出我正确的方向。

提前致谢

1 个答案:

答案 0 :(得分:0)

FileUpload无法完成Asynchronously。为了做到这一点PostBackTrigger需要上传触发器。