在某些机器上,FileUpload.click()之后未执行PostBack列表

PostBack ist not executed after FileUpload.click() on some machines

本文关键字:之后 执行 列表 PostBack click 机器 FileUpload      更新时间:2023-09-26

我已经创建了一个WebControl。哪里有上传文件的按钮

我创建了按钮和FileUpload,就像

private readonly Button button;
public DocumentUploadButton() {
    button = new Button();
    button.Click += this.ProcessClick;
    var panel = new Panel();
    panel.Controls.Add(button);
    var fileUpload = new FileUpload();
    fileUpload.ID = "fileUploadHidden";
    fileUpload.Attributes["style"] = "display:none";
    panel.Controls.Add(fileUpload);
    Controls.Add(panel);
}
private void ProcessClick(object sender, EventArgs e) {
    if (this.fileUpload.PostedFile != null &&  string.IsNullOrEmpty(this.fileUpload.PostedFile.FileName)) {
       // Upload file and handle it like ...
       this.fileUpload.SaveAs(....)
    }
}
在OnLoad中我附加了一个JavaScript-Function:
protected override void OnLoad(EventArgs e) {
   this.button.Attributes.Add("onclick", "document.getElementById('fileUploadHidden').click();");
   base.OnLoad(e);
}

现在,当用户单击该按钮时,将调用FileUpload并显示FileChooseDialog。这工作得很好。但在此之后,Click-Handler ProcessFile()没有在一些客户机器上执行(我认为PostBack没有执行)。在我的开发人员机器上,这是正常工作的。

谁能帮我一下,客户的机器出了什么问题?

可能是IE安全设置,至少在我过去的情况下。要求他们将该站点添加到他们机器上的可信站点