我有一个ASP.net网页托管一个分成各种更新面板的表单,以改善页面的流量。 没有选项卡和更新面板,用户需要一段时间才能一直滚动到底部。
我有各种独立验证的数据表,它们的摘要显示在我为其指定的区域。 当完整文档提交到服务器时,所有这些都会触发。所有这些都符合我的预期。
但是,我被要求在此页面中添加文件功能,因此我再次使用上传控件嵌套在自己的更新面板中(绑定到按钮的异步触发器) 当Required validator正确返回false并显示错误消息时,这将按预期工作。
这里的真正问题是,在成功验证(和回发)后,ENTIRE页面会尝试重新验证,因此,所有必需字段都会注册为false。 这是显示此行为的页面的唯一部分
有没有人知道,或者有人可以建议我在哪里可以找到我明显缺失的信息。
<asp:UpdatePanel runat="server" ID="uPnlDocs" UpdateMode="Conditional">
<Triggers>
<asp:PostBackTrigger ControlID="btnUploadFile" />
</Triggers>
<ContentTemplate>
<div id="DivDocs" runat="server" class="tab-pane" visible="false">
<div class="panel panel-default">
<div class="panel-heading">
<asp:Label ID="Label1" runat="server">
<h3><u>Supporting Documents</u></h3 >
<h4>Please upload any documents you would like to attach to the currently selected DRD record. </h4>
<h5>Click the "Browse/Choose File" button to select a file, Then click "Upload File"</h5>
</asp:Label>
</div>
<br />
<div class="panel-body">
<!-- Controls go in here -->
<asp:FileUpload runat="server" ID="DrdFile" CssClass="col-sm-3" ViewStateMode="Enabled" />
<asp:Button runat="server" CausesValidation="true" ValidationGroup="VGUpload" ID="btnUploadFile" Text="Upload File" CssClass="btn btn-success col-sm-2" OnClick="btnUploadFile_Click" />
<asp:RequiredFieldValidator runat="server" ID="RFV_Upload" ControlToValidate="DrdFile" Display="None" ValidationGroup="VGUpload" ErrorMessage="File not Selected" CssClass="validationError col-sm-6"></asp:RequiredFieldValidator>
<asp:Label runat="server" ID="lblUploadText" Text="Add a description to go with your file" CssClass="col-sm-12" AssociatedControlID="txtUploadFile" />
<asp:TextBox runat="server" ID="txtUploadFile" TextMode="MultiLine" Rows="4" CssClass="col-sm-10" />
</div>
</div>
更新 -
通过进一步的研究和测试,我发现我的所有验证器都被解雇了,不仅仅是必需的字段验证器
根据MSDN; https://msdn.microsoft.com/en-us/library/hh882339(v=vs.110).aspx
当表单提交时,我应该能够停止验证;
把&lt; @ PAGE validateRequest =&#34; false&#34; %GT;在页面指令(已尝试)
将设置添加到web.config文件(也已尝试过)
此时我的想法已经不多了,我希望有人想出这个想法。
答案 0 :(得分:0)
FileUpload
控件与UpdatePanel
不兼容。这可能是问题所在。
与UpdatePanel控件不兼容的控件
以下ASP.NET控件与部分页面更新不兼容,因此不适用于UpdatePanel控件:
几种情况下的TreeView控件。一种是启用不属于异步回发的回调。另一种方法是直接将样式设置为控件属性,而不是通过使用CSS样式的引用来隐式设置控件样式。另一种是当EnableClientScript属性为false时(默认为true)。另一种方法是在异步回发之间更改EnableClientScript属性的值。
将样式直接设置为控件属性时的菜单控件,而不是通过使用对CSS样式的引用来隐式设置控件样式。有关详细信息,请参阅菜单控制概述。
FileUpload和HtmlInputFile控制何时用于上传文件作为异步回发的一部分。
当GridS和DetailsView的EnableSortingAndPagingCallbacks属性设置为true时,它们会进行控制。默认值为false。
登录,PasswordRecovery,ChangePassword和CreateUserWizard控件,其内容尚未转换为可编辑模板。
替换控制。
验证控件,包括BaseCompareValidator,BaseValidator,CompareValidator,CustomValidator,RangeValidator,RegularExpressionValidator,RequiredFieldValidator和ValidationSummary控件。