【发布时间】:2019-11-01 19:27:43
【问题描述】:
ASP 控件FileUpload 总是为方法FileUpload.HasFile 返回false。我曾尝试使用触发器,但这对我不起作用。
这里是按钮方法
protected void btnUploadFile_Clicked(object sender, EventArgs e)
{
testMethod();
}
这里是testMethod() if 语句总是评估为假。
protected void testMethod()
{
if(FileUploadImage.HasFile)
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "NoDatabaseAlertMessage", "alert('it work')", true);
}
else
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "NoDatabaseAlertMessage", "alert('no work')", true);
}
}
Edit1:这是我尝试实现的 html 触发器内容,但未成功
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="btnUploadFile" />
</Triggers>
</asp:UpdatePanel>
<asp:FileUpload ID="FileUploadImage" runat="server" />
<asp:Button ID="btnUploadFile" runat="server" Text="Upload File" class="btn btn-primary transition-3d-hover" OnClick="btnUploadFile_Clicked" />
</div>
【问题讨论】:
-
您的 FileUpload 是否在 Page.PostBack 上被重置?编辑:和 String.Format() 那个文本!好难看……
-
在 Page_Load 事件中,是否有设置 FileUpload 值的代码?简而言之,当您单击一个按钮(即上传文件)时,它会在运行按钮单击事件之前回传到服务器并再次点击 Page_Load,因此,如果您有默认 FileUpload 字段的代码(未包装在!Page.IsPostBack 检查)然后该默认设置将被重置,并且您将不会在其中保留要上传的文件。
-
再说一次,这只是一个想法——这是我在点击一个值后检查是否丢失值(在文本框、网格等中)的第一件事。当我认为我应该仍然存在该值时,单击按钮并发回。
-
@griffin_cosgrove 这些问题都围绕着你如何调用
renameFilePath方法。请在您的问题中包括这一点,否则我们都会猜测。另外,您说您尝试使用触发器。如果上传 ctrl 在更新面板中,它将不起作用。它们不适用于更新面板。 -
你能发布你的文件上传按钮点击代码吗?尝试 FileUpload.HasFile 而不是 FileUploadImage.Has.File。