我有一个奇怪的... ...
我在ASP页面上有两个控件 - 一个文件上传器和一个按钮。
<asp:Panel ID="pnlUploadData" runat="server">
<asp:FileUpload ID="fuWizData" runat="server" AllowMultiple="false" />
<br />
<asp:LinkButton ID="lbUploadWizData" runat="server" OnClick="btnUpload_Click" EnableViewState="true" Text="Upload" />
</asp:Panel>
<asp:Panel ID="pnlDataUploaded" runat="server" Visible="false">
Upload complete! Please continue to the next step.
</asp:Panel>
请注意链接按钮的OnClick =“btnUpload_Click”。
我在btnUpload_Click
protected void btnUpload_Click(object sender, EventArgs e)
{
pnlDataUploaded.Visible = true; //Breakpoint here
pnlUploadData.Visible = false;
}
如果单击按钮而未在上传器中选择文件,我会点击断点,一切都很棒。
如果我在文件上传器中选择一个文件,然后单击按钮 - 没有任何反应。没什么。没有回发。
我搜索了一下,发现其他人遇到了这个问题(https://www.codeproject.com/Questions/284245/button-click-event-not-firing-with-file-upload-con和Event of button is not fired when i browse any file through fileupload control and upload it..connection time out error)
我尝试将<httpRuntime executionTimeout="999999" maxRequestLength="2097151" />
添加到我的网络配置中,但这不起作用。我的页面上也没有任何可能影响它的验证器。
我也尝试使用ASP按钮而不是LinkButton,但这不起作用。我甚至检查了页面上的javascript,并且链接按钮的onclick是正确的,但调用方法没有做任何事情(不知道为什么)。
这是呈现的HTML:
<a id="MainContent_lrtImportWizard_vtmImportWizard_vtImportData_lbUploadWizData" href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$MainContent$lrtImportWizard$vtmImportWizard$vtImportData$lbUploadWizData", "", true, "", "", false, true))'>Upload</a>
任何帮助都会很棒!或者任何方式来跟踪可能发生的事情。
答案 0 :(得分:0)
您应该设置AutoPostBack =“true”。
当您执行Visible =“false”时,该属性将仅在服务器端更改。但是你在客户端(在浏览器上)看到的是html的影响。您需要将该信息更新到客户端。 AutoPostBack =“true”将导致任何服务器端更改仅应用于控件。
此外,您可以使用java脚本立即隐藏和取消隐藏您的控件,因为javascript在客户端运行。