UpdatePanel не обновляется - PullRequest
       4

UpdatePanel не обновляется

0 голосов
/ 09 марта 2012

Я новичок в ASP.NET, так что, вероятно, мой вопрос прост ... но я трачу много времени без успеха.
Часть моей страницы

<asp:UpdatePanel ID="pnlFileUpload" runat="server">
    <ContentTemplate>
        <ajaxToolkit:AsyncFileUpload ID="upload" runat="server" OnUploadedComplete="upload_UploadedComplete"
            OnUploadedFileError="upload_UploadedFileError" UploaderStyle="Modern" UploadingBackColor="Yellow"
            Width="400px" />
    </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="pnlFileError" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Label ID="lblFileError" runat="server" Text="errFile" Visible="false"></asp:Label>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="upload" EventName="UploadedComplete" />
    </Triggers>
</asp:UpdatePanel>

Когда пользовательские загрузки (начинающиеся с ajaxToolkit:AsyncFileUpload) заканчиваются, вызывается upload_UploadedComplete.
Пример кода:

protected void upload_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
    int size = upload.PostedFile.ContentLength;
    if (size > maxsize)
    {
        lblFileError.Text = 'File too big...';
        lblFileError.ForeColor = System.Drawing.Color.Red;
        lblFileError.Visible = true;
        pnlFileError.Update();
    }
}

Но lblFileError никогда не показывается ... почему?!?

1 Ответ

0 голосов
/ 09 марта 2012

AsyncFileupload не нуждается в updatePanel (ни один из элементов управления AJAx не нужен). как они это встроили. удалите файл, загрузите UpdatePanel и протестируйте снова

кажется, вы не можете сделать это таким образом. на основе AjaxControlToolkitSampleSite, чтобы показать пользователю сообщение о загрузке файла, вы должны использовать «ScriptManager.RegisterClientScriptBlock», как показано ниже:

protected void upload_UploadedComplete(object sender,  AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
   int size = upload.PostedFile.ContentLength;
   if (size > maxsize)
    {
      ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "error", "top.$get(\"" + lblFileError.ClientID + "\").innerHTML = 'File too big...';", true);

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...