首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileUpload空后PostBack

FileUpload空后PostBack
EN

Stack Overflow用户
提问于 2013-12-05 07:51:25
回答 2查看 22.6K关注 0票数 2

我有一个关于ASP.NET文件绘制器的问题,它在回发后是空的。我有一个fileupload控件,一个文本框控件和一个按钮控件。

当我单击该按钮时,它会检查是否填充了textbox,如果它执行操作,如果没有,它将显示一个错误消息并停留在页面上。但是,当我按下按钮和文本框为空时,按钮回发和fileuploader是空的,用户必须再次选择该文件。所以:用户选择文件>文件位于fileuploader >用户按下按钮>错误消息弹出> fileuploader在回发后丢失文件。

当用户选择一个文件但尚未单击按钮(koala.jpg)时

按下按钮后,文件就会消失(没有选择文件)。

如何在回发后将文件保存在文件处理程序中,或者在文本框为空时告诉按钮不要回发?

编辑:

请注意,我简化了问题,第一篇文章的内容只是为了使我的问题更清楚。

页面加载:

代码语言:javascript
复制
    protected void Page_Load(object sender, EventArgs e)
    {
        //First check if User is logged in 
        if (Session["User"] == null)
        {
            Response.Redirect(GetRouteUrl("Login", null));
        }

        TicketsBLL objTicketsBll = new TicketsBLL();


        var cat = objTicketsBll.getAllCategories();

        ddlCategory.DataTextField = "name";
        ddlCategory.DataValueField = "id";
        ddlCategory.DataSource = cat;
        ddlCategory.DataBind();



    }

按钮单击:

代码语言:javascript
复制
//check if everthing is filled :
        errorContent.Visible = false;
        errorSubject.Visible = false;

        if (txtSubject.Text == "" || txtSubject.Text == null || txtContent.Text == null || txtContent.Text == "")
        {
            if (txtSubject.Text == "" || txtSubject.Text == null)
            {
                errorSubject.Visible = true;
            }
            if(txtContent.Text == null || txtContent.Text == ""){
                errorContent.Visible = true;
            }
        }

        else { //Do something after this

errorSubject & errorContent是隐藏的div,显示为错误

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-05 08:02:49

不可能设置文件输入的值。这是一个浏览器安全特性,与password字段相同,唯一的区别是使用password字段可以使用JavaScript设置值。

但是,对于file输入,您不能设置值。

解决方案是防止回发,在回发之前使用JavaScript检查值。

票数 12
EN

Stack Overflow用户

发布于 2014-02-01 02:05:21

正如Phill所指出的,您根本无法从后面的代码或表单值重新填充中更新此Control。

如果您依赖自动回发来更改表单上的其他位置的数据,则需要处理初始FileUpload并创建一个假占位符,该占位符指示要上载的文件名。

更简单的解决方案可能是将需要AutoPostBack的其他控件包装到UpdatePanel中,这样它们就可以独立于文件上载控件回发。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20394337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档