C# 使用验证器验证从excel文件上载到gridview的数据

C# 使用验证器验证从excel文件上载到gridview的数据,c#,asp.net,validation,C#,Asp.net,Validation,我有一个gridview,它是由用户上传的excel文件填充的。代码: <asp:GridView ID="gvData" runat="server" SkinID="GridView" Width="100%" AllowPaging="True" AllowSorting="false" EmptyDataText="Data not found." AutoGenerateColumns="false" AutoGenerateEditButton=

我有一个gridview,它是由用户上传的excel文件填充的。代码:

<asp:GridView ID="gvData" runat="server" SkinID="GridView" Width="100%" AllowPaging="True" AllowSorting="false"
                EmptyDataText="Data not found." AutoGenerateColumns="false" AutoGenerateEditButton="true" AutoGenerateDeleteButton="true" 
                OnRowEditing="gvData_RowEditing" OnRowCancelingEdit="gvData_RowCancelingEdit" OnRowUpdating="gvData_RowUpdating" OnRowDeleting="gvData_RowDeleting"> 
                <Columns>
                <asp:TemplateField HeaderText="Date" HeaderStyle-ForeColor="White">
                    <ItemTemplate>
                        <asp:Label ID="lblDate" runat="server" Text='<%#Eval("Date", "{0:MM/dd/yyyy}")%>'/>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="txtDate" runat="server" Text='<%#Eval("Date", "{0:MM/dd/yyyy}")%>'  CssClass="datepicker"/>
                        <asp:RequiredFieldValidator ID="rfvDate" runat="server" CssClass="validator"  ErrorMessage="Required" Display="Dynamic"  ControlToValidate="txtDate"/>
                        <asp:CompareValidator id="dateValidator" runat="server" CssClass="validator" Type="Date" Operator="DataTypeCheck" ControlToValidate="txtDate" ErrorMessage="Please enter a valid date."/>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Ref Number" HeaderStyle-ForeColor="White">
                    <ItemTemplate>
                        <asp:Label ID="lblRefNumber" runat="server" Text='<%#Eval("Ref Number")%>' />
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="txtRefNumber" runat="server" Text='<%#Eval("Ref Number")%>' />
                        <asp:RegularExpressionValidator ID="revRefNumber" runat="server" ControlToValidate="txtRefNumber" CssClass="validator" Display="Dynamic" ErrorMessage="Numbers only"
                            ValidationExpression="^[0-9]+$"/>
                    </EditItemTemplate>
                </asp:TemplateField>
</Columns>
</asp:GridView>

正如您所看到的,我在每个字段上都有一些验证器,因为它们只有在编辑相关文本框时才会生效。例如,我要确保在用户完成编辑后,日期列中的文本框包含有效的日期值。问题是,当数据第一次从excel文件上传时,用户可以将任何数据插入这些单元格-验证程序完全被“绕过”


我想知道是否有办法在上传的数据上应用并强制执行这些验证器。

你是想说,当你用gridview绑定数据时,你是想用gridview中的这些验证来验证数据吗?@Rahul类似的东西……在绑定时,你不能用gridview的验证来验证。在将数据集或数据表绑定到gridiview之前,需要对其进行验证。但这意味着我需要复制每个验证程序。。。我真的希望有一种更优雅的方法来实现这一点……假设您需要验证数据集的日期列,您可以将正则表达式应用于数据集的特定列(日期),以过滤结果。