C# ASP.Net UpdatePanel未更新,部分回发激发

C# ASP.Net UpdatePanel未更新,部分回发激发,c#,asp.net,ajax,updatepanel,C#,Asp.net,Ajax,Updatepanel,所以我已经在这个问题上纠缠了好几个小时了,搜索论坛,尝试人们建议的一切,但我就是不能让它工作 我有一个(相当大的)网页表单。表单上的某个地方有一个updatePanel,其中包含一个CuteSoft Ajax上传器控件。当上传文件时,该控件在我的代码中调用一个函数——这很好。在该函数中,我对updatePanel中的内容进行了一些更改(添加缩略图等),但是这些更改不会反映在前端 以下是表格(去掉不相关的部分): ... ... ... ... ... 车辆图像 var Image_Count

所以我已经在这个问题上纠缠了好几个小时了,搜索论坛,尝试人们建议的一切,但我就是不能让它工作

我有一个(相当大的)网页表单。表单上的某个地方有一个updatePanel,其中包含一个CuteSoft Ajax上传器控件。当上传文件时,该控件在我的代码中调用一个函数——这很好。在该函数中,我对updatePanel中的内容进行了一些更改(添加缩略图等),但是这些更改不会反映在前端

以下是表格(去掉不相关的部分):


...
...
...
...
...
车辆图像

var Image_Count=$('#').val(); ... ... ... ...
代码隐藏如下所示:

protected override void OnInit(事件参数e)
{
碱基.奥尼特(e);
//Uploader.FileUpload+=新的CuteWebUI.UploaderEventHandler(Uploader\u FileUpload);
Uploader.FileUploader+=Uploader\u FileUploader;
Uploader.UploadeCompleted+=上传器完成;
Attachments.AttachmentRemoveClicked+=附件\u AttachmentRemoveClicked;
Attachments.InsertButton.Style[“display”]=“none”;
((HiddenField)FindControl(“hdn”)).Value=“0”;
}
...
受保护的无效上载程序\u文件上载(对象发送器,CuteWebUI.UploaderEventArgs args)
{
...
使用(System.IO.Stream=args.OpenStream())
{
//检查文件是否已经存在-由于某种原因,似乎每个图像都要做两次。。。
foreach(照片中的var ph)
if(String.Equals(ph.FileName,args.FileName))
返回;
...
//显示图像缩略图
显示上传的光电检测器(p,ImageCount);
}
}
捕获(例外情况除外)
{
...
}
}
private void ShowUploaded PhotoDetails(照片照片,int imageNo)
{

如果(imageNoPhew,我明白了!!!基本上我一步一步地重建了整个表单。虽然我不知道到底是什么阻止了它工作,但我怀疑它可能是由表单其他部分的按钮上设置的以下属性引起的:

PostbackUrl = ".."
将其添加回我的工作表单会导致updatePanel中断..但是将其从我原来中断的表单中删除并不能修复它,因此可能还有其他原因

没有任何代码被更改,所以这与事件的顺序等无关(尽管他们认为这是个好主意)


这是一个从Asp.Net 2.0更新到4.0的项目。可能升级中有什么东西把它搞砸了。谁知道,至少它是固定的。呸!

如果UpdatePanel中有任何错误,包括div标记格式不正确等。面板可能不会刷新。如果你没有得到UpdatePanel来刷新,你就e尝试了所有常用的方法。Update()等。然后检查UpdatePanel的内容是否存在任何问题,它应该会解决问题。

可能Uploader\u Complete事件发生在最后一页事件之后,可以在屏幕上更新输出。只是想一想。
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            //Uploader.FileUploaded += new CuteWebUI.UploaderEventHandler(Uploader_FileUploaded);
            Uploader.FileUploaded += Uploader_FileUploaded;
            Uploader.UploadCompleted += Uploader_Complete;
            Attachments.AttachmentRemoveClicked += Attachments_AttachmentRemoveClicked;
            Attachments.InsertButton.Style["display"] = "none";
            ((HiddenField)FindControl("hdn")).Value = "0";
        }

...

        protected void Uploader_FileUploaded(object sender, CuteWebUI.UploaderEventArgs args)
        {
            ...

                using (System.IO.Stream stream = args.OpenStream())
                {
                    // Check if file already exists - seems to do each image twice for some reason...
                    foreach (var ph in Photos)
                        if (String.Equals(ph.FileName, args.FileName))
                            return;

                    ...

                    // Show image thumbnail
                    ShowUploadedPhotoDetails(p, ImageCount);
                }
            }
            catch (Exception ex)
            {
               ...
            }
        }

    private void ShowUploadedPhotoDetails(Photo photo, int imageNo)
    {
        if (imageNo <= 3)
        {
            var imagePanel = (Panel)FindControl(String.Concat("pnlImageDetails_", imageNo));
            imagePanel.CssClass = "display_block";
            imagePanel.Visible = true;

            var uploadedImage = (System.Web.UI.WebControls.Image)FindControl(String.Concat("imgUploadedImage", imageNo));
            uploadedImage.ImageUrl = photo.ImageUrlThumb;
            uploadedImage.Visible = true;
            uploadedImage.CssClass = "CSS_CLASS";
        }
    }

        protected void Uploader_Complete(object sender, CuteWebUI.UploaderEventArgs[] args)
        {
            Uploader uploader = (Uploader)sender;
            uploader.InsertButton.Enabled = (Photos.Count < 3);

            // Force updatePanel to update
            upImageUpload.Update();
        }
PostbackUrl = ".."