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

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

如何在回发后将文件保存在文件处理程序中,或者在文本框为空时告诉按钮不要回发?
编辑:
请注意,我简化了问题,第一篇文章的内容只是为了使我的问题更清楚。
页面加载:
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 thiserrorSubject & errorContent是隐藏的div,显示为错误
发布于 2013-12-05 08:02:49
不可能设置文件输入的值。这是一个浏览器安全特性,与password字段相同,唯一的区别是使用password字段可以使用JavaScript设置值。
但是,对于file输入,您不能设置值。
解决方案是防止回发,在回发之前使用JavaScript检查值。
发布于 2014-02-01 02:05:21
正如Phill所指出的,您根本无法从后面的代码或表单值重新填充中更新此Control。
如果您依赖自动回发来更改表单上的其他位置的数据,则需要处理初始FileUpload并创建一个假占位符,该占位符指示要上载的文件名。
更简单的解决方案可能是将需要AutoPostBack的其他控件包装到UpdatePanel中,这样它们就可以独立于文件上载控件回发。
https://stackoverflow.com/questions/20394337
复制相似问题