asp.net - 导致验证的信息框
问题描述
我有一个 ASP 页面,其中有一个文件上传器。此文件上传器附加了一个必填字段验证器。当我选择要上传的文件时,文件上传成功,并出现一个带有成功消息的信息框。
当我单击信息框上的确定使其消失时,它会尝试再次验证整个页面并且信息框不会消失。
我尝试将文件上传器上的 CausesValidation 属性设置为 false,但没有成功。我也尝试过 AutoPostBack 和 IsPostBack。
aspx 代码
<%@ Page Title="Excel File Content Upload" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master"
CodeBehind="ExcelFileContentUpload.aspx.vb" Inherits="Company.Applications.ProductionEngine.UI.ExcelFileContentUpload" %>
<%@ Register Src="~/GenericControls/UC_InformationMessageBox.ascx" TagName="InformationBox"
TagPrefix="uc" %><asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>
<asp:Label ID="lblTitle" Text="Excel File Content Upload" runat="server" />
</h2>
<br />
<asp:FileUpload ID="fileUploader" runat="server" Width="400px"/>
<br />
<br />
Choose Year: <asp:DropDownList ID="ddlYear" runat="server"></asp:DropDownList>
Choose Month: <asp:DropDownList ID="ddlMonth" runat="server"></asp:DropDownList>
<br />
<br />
<asp:Button ID="btnDataUpload" runat="server" Text="Upload Data" CssClass="buttonBlue"
Visible="true" Width="115px"/>
<asp:UpdatePanel ID="MainContentUpdatePanel" runat="server">
<ContentTemplate>
<uc:InformationBox ID="InformationBox" runat="server" EnableViewState="true"/>
<asp:RequiredFieldValidator ID="rvfFileUploader" runat="server" ControlToValidate="fileUploader"
ErrorMessage="* Select an Excel file to upload" ForeColor="Red"></asp:RequiredFieldValidator>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
页面加载
#Region "PAGE LOAD"
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Load years and months into their respective dropdown lists
If Not Page.IsPostBack Then
Dim _currentYear As Integer = DateTime.Now.Year
Dim _previousYear As Integer = DateTime.Now.Year - 1
Dim _month = CultureInfo.CreateSpecificCulture("en").DateTimeFormat.MonthNames
For i As Integer = 0 To _month.Length - 1
ddlMonth.Items.Add(New ListItem(_month(i), i + 1).ToString())
Next
ddlYear.Items.Add(_currentYear)
ddlYear.Items.Add(_previousYear)
End If
End Sub
#End Region
解决方案
<asp:Button ID="btnDataUpload" runat="server" Text="Upload Data" CssClass="buttonBlue" Visible="true" Width="115px" ValidationGroup="A" />
<asp:UpdatePanel ID="MainContentUpdatePanel" runat="server">
<ContentTemplate>
<uc:InformationBox ID="InformationBox" runat="server" EnableViewState="true"/>
<asp:RequiredFieldValidator ID="rvfFileUploader" runat="server" ControlToValidate="fileUploader" ErrorMessage="* Select an Excel file to upload" ForeColor="Red" ValidationGroup="A"></asp:RequiredFieldValidator>
</ContentTemplate>
</asp:UpdatePanel>
我认为另一种选择可能是将 InformationBox 从 UpdatePanel 中取出,并将 Button 放在面板内,并使用 defaultButton 属性。这很容易与 asp:Panels 一起使用。
推荐阅读
- c++ - 考虑到 std::cout 是一个已初始化的对象,为什么 Visual Studio 在调试器中设置 Watch 时“无法识别其标识符”?
- vue.js - Vue组合api自定义v-model
- c - C90 - 使用非常量值初始化堆栈上的聚合类型
- wpf - WPF 使用 IDataErrorInfo 验证子类属性
- laravel-8 - 使用 Laravel 8 和 mysmsmantra 服务提供商集成短信网关方式
- vb.net - 如何从 gridpanel VB.NET 获取当前页面值
- c# - 如何检查是否在 ASP.NET Core 中为变量分配了默认值运行时
- performance - Neo4j 检查节点之间的无路径需要很长时间
- amazon-web-services - S3 克隆具有所有权限和选项的存储桶
- sql - 如何从 sql 中的给定日期获取下一个特定日期?