尝试在更新面板中使用ASCX控件进行文件上载

时间:2014-06-10 15:20:24

标签: c# asp.net file-upload ascx

所以我对文件上传有一个ascx控件。此控件在FileUpload中有一个imagebutton元素和一个table,以及grid在完成后显示上传的文件。 gridfileupload + imagebutton table不会同时显示。

imagebutton的点击事件位于ascx.cs文件中:

    public void btnUploadFile_Click(object sender, EventArgs e)
    {
        try
        {
            if (fileUpload.HasFile)
            //if(!string.IsNullOrEmpty(fileUpload.FileName))
            {
                String fileName = fileUpload.FileName;// strPath.Substring(lastIndex + 1);
                String ext = fileUpload.FileName.Split('.')[1];
                Guid newFileName = Guid.NewGuid();
                string strPath = MapPath("~/importfiles/") + newFileName.ToString() + "." + ext;
                fileUpload.SaveAs(strPath);
                LoadTable(fileName);
                hfFilePath.Value = strPath;
                hfFileName.Value = fileName;
                hfMIMEType.Value = fileUpload.PostedFile.ContentType;
                hfFileGUID.Value = newFileName.ToString();
                hfFileUploaded.Value = "1";
            }
            else
            {
                grdAttachment.Visible = false;
                filePickTable.Visible = true;
            }
        }
        catch (Exception ex)
        {
            UserInterfaceExceptionHandler.HandleException(ref ex);
        }
    }

在内容页面上,我必须测试控件是否已经有文件,以便知道控件显示哪个视图(grid vs fileupload)。

if (attr.ImageValue != null)
{
    //Do stuff to display grid instead of fileupload control
    PostBackTrigger newTrigger = new PostBackTrigger();
    newTrigger.ControlID = attrControl.ID;
    IssueUpdatePanel.Triggers.Add(newTrigger);
}
else
{
    (attrControl.FindControl("filePickTable") as Table).Width = new Unit("200px");
    ImageButton btnUploadFile = attrControl.FindControl("btnUploadFile") as ImageButton;
    AsyncPostBackTrigger newTrigger = new AsyncPostBackTrigger();
    newTrigger.ControlID = btnUploadFile.ID;
    newTrigger.EventName = "Click";
    IssueUpdatePanel.Triggers.Add(newTrigger);
}

现在我遇到的问题是else代码(对于没有文件的时候),我得到以下异常:

  

无法找到名为'点击'关联控制' btnUploadFile'对于UpdatePanel' IssueUpdatePanel'。

中的触发器

该页面有Timer,每隔几秒就自动刷新一次页面。

我试着到处寻找解决方案,但无济于事。 希望我已经在这里提供了足够的信息。

0 个答案:

没有答案