PostBack后FileUpload为空

 duangjai_602 发布于 2023-02-12 18:11

关于回发后为空的ASP.NET文件上载器,我遇到了问题.我有一个文件上传控件,一个文本框控件和一个按钮控件.

当我单击该按钮时,它会检查文本框是否已填充,是否执行操作,如果不是则显示错误消息并保留在页面上.但是,当我按下按钮并且文本框为空时,按钮回发并且fileuploader为空,用户必须再次选择该文件.所以:用户选择文件>文件位于fileuploader>用户按下按钮>弹出错误信息>文件上传器在回发后丢失文件.

当用户选择文件但尚未点击按钮时(koala.jpg) 在此输入图像描述

按下按钮时,文件消失(未选择文件)
在此输入图像描述

如何在回发后将文件保留在fileuploader中,或者如果文本框为空,可以告诉按钮不回发?

编辑:

请注意,我简化了问题,并且第一篇文章的内容只是为了使我的问题更加清晰.

页面加载:

    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();



    }

按钮单击:

//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,显示为错误

1 个回答
  • 无法设置文件输入的值.这是一个浏览器安全功能,它与password字段相同,唯一的区别在于password您可以使用JavaScript设置值的字段.

    但是file输入时无法设置值.

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

    2023-02-12 18:14 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有