我想检查文件的类型是否正确以及文件是否已被选中。我不介意我不能把它放到一个表达式中。但两者都必须是真的,即文件类型正确,文件由FileUploadControl选择。
以下代码使用正则表达式检查工作扩展名:
<li class="three">
<p>Bulk insert/upload inventory from file</p>
<div>
<asp:FileUpload ID="fileUploadControl" accept="csv" runat="server" />
<asp:RegularExpressionValidator ID="regexValidator" runat="server" ValidationGroup="upload"
ControlToValidate="fileUploadControl"
ErrorMessage="Only csv files are allowed" ForeColor="Red"
ValidationExpression="(.*\.([Cc][Ss][Vv])$)">
</asp:RegularExpressionValidator>
<br />
<asp:Button ID="buttonUploadToInventory" runat="server" Text="Upload" ValidationGroup="upload" OnClick="buttonUploadToInventory_Click" />
<asp:Label ID="statusLabel" runat="server" Text="Upload status: Nothing uploaded"></asp:Label>
</div>
</li>
我想添加一个新子句来检查文件是否被选中,这样我就可以在同一个标签中显示错误。
答案 0 :(得分:3)
为其添加RequiredFieldValidator
。如果没有选择文件,RFV将触发,如果选择了文件,RegularExpressionValidator
将会触发。
<asp:FileUpload ID="fileUploadControl" accept="csv" runat="server" />
<asp:RegularExpressionValidator ID="regexValidator" runat="server" ValidationGroup="upload"
ControlToValidate="fileUploadControl"
ErrorMessage="Only csv files are allowed" ForeColor="Red"
ValidationExpression="(.*\.([Cc][Ss][Vv])$)">
</asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="requiredValidator" runat="server" ValidationGroup="upload"
ControlToValidate="fileUploadControl"
ErrorMessage="Please select a file" ForeColor="Red">
</asp:RegularExpressionValidator>