我创建了一个WebControl。用于上传文件的按钮在哪里。
我创建了Button和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(....)
}
}
protected override void OnLoad(EventArgs e) {
this.button.Attributes.Add("onclick", "document.getElementById('fileUploadHidden').click();");
base.OnLoad(e);
}
现在,当用户单击该按钮时,将调用FileUpload并显示FileChooseDialog。这很有效。但在此之后,Click-Handler ProcessFile()不会在某些客户机器上执行(我认为PostBack没有执行)。在我的开发人员 - 机器上,这工作正常。
有人可以帮助我,客户机器上会出现什么问题吗?
我们使用InternetExplorer。
答案 0 :(得分:0)
可能是IE安全设置,至少在我过去的情况下。要求他们将网站添加到他们机器上的可信站点