Field Validator奇怪的行为

时间:2011-02-21 23:00:17

标签: c# javascript asp.net regex

我创建了一个ASP.NET 3.5表单页面。在顶部,我放置了一些文本框和字段验证器,以便在数据库中插入记录/行。在底部,我有一个多视图控件,其中包含一个包含文本框,验证器和gridview的视图,用于搜索/编辑记录。

现在虽然我可以使用按钮正常搜索,但如果我在搜索文本框中按Enter键,则会从页面顶部触发一个完全无关的验证器。验证器,文本框和按钮属于不同的验证组(两组:顶部,底部)。即使我在底部关闭验证(causeValidation = false,searchValidator =禁用)它仍然会触发。任何想法?

底层正则表达式验证器也会错误地触发(validationExpression = ^[a-zA-Z0-9]{1,50}$) 而最精确的副本则没有。我只想插入字符和数字。

我必须检查JavaScript代码吗?我在哪里可以找到它?是否有命令在往返后自动滚动到页面底部?

            <asp:View ID="View2" runat="server">
                ItemID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Date<br/>
                <asp:TextBox ID="TextBox1" runat="server" ValidationGroup="Search" CausesValidation="False"></asp:TextBox>
                &nbsp;<asp:TextBox ID="TextBox2" runat="server" 
                     ValidationGroup="Search" CausesValidation="False"></asp:TextBox>
                &nbsp;<asp:Button ID="ButtonSearch" runat="server" 
                    onclick="ButtonSearch_Click" Text="SEARCH" Width="120px" 
                    ValidationGroup="Search" CausesValidation="False" />

1 个答案:

答案 0 :(得分:1)

从ASP.NET 2.0开始,您可以在表单级别或Panel级别设置默认按钮(当用户按Enter键时触发的按钮)。如果您之前没有使用过Panel,则会将其渲染为div。

示例:

<form id="form1" defaultbutton="SearchButton" runat="server">

<asp:Panel ID="SearchPanel" DefaultButton="SearchButton" runat="server">

不确定,但我认为defaultbutton / DefaultButton属性的值必须是UniqueID,不一定与默认按钮的ID相同。

Scott Guthrie's blog有更多。