【问题标题】:Field Validator weird behavior字段验证器奇怪的行为
【发布时间】:2011-02-21 23:00:17
【问题描述】:

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

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

底部的正则表达式验证器也未正确触发(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" />

【问题讨论】:

  • 其他按钮触发回发。它肯定是页面中的“默认”。你能给我们提供标记吗?
  • 我没有默认按钮。我可以为页面中的不同控件分组设置不同的默认按钮吗?

标签: c# javascript asp.net regex


【解决方案1】:

从 ASP.NET 2.0 开始,您可以在表单级别或面板级别设置默认按钮(当用户按下 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 有更多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 2010-12-17
    • 1970-01-01
    • 2016-07-11
    • 2014-03-18
    • 1970-01-01
    相关资源
    最近更新 更多