【问题标题】:Two ASP.net buttons on same page problem?同一页面上的两个 ASP.net 按钮问题?
【发布时间】:2010-08-17 08:01:53
【问题描述】:

我在一个页面上有两个 asp 按钮。采用以下格式 文本框1 必填字段验证器1 按钮1

文本框2 需要提交的验证器2 按钮2

如果我在两个按钮上保持原因验证为真,那么它不会触发服务器端点击事件,但我可以使用必填字段验证器来验证这些文本框。

如果我在两个按钮上保持此原因验证为 false,它会触发服务器端点击事件,但我无法使用所需的归档验证器来验证这些文本框

你能告诉我最好的解决方案吗

谢谢

【问题讨论】:

  • 是的,代码会很有帮助。几天前我已经构建了一个多按钮/多验证器表单并且它有效,所以它必须有所不同。

标签: asp.net


【解决方案1】:

CausesValidation 两者都应该为真。

您需要做的是在 textbox1 验证器和 button1 上设置 ValidationGroupButton1Validation。在 textbox2 验证器和 button2 上设置 ValidationGroup 的 Button2Validation。

验证组将验证规则分成组,这样组就不会重叠和相互干扰。

【讨论】:

  • 我尝试了验证组,结果也没有变化。这里我发送了两个单独的按钮,请查看以下这两个 cmets
【解决方案2】:

RequiredFieldValidator 的默认行为是,当您不向与其耦合的文本框插入内容,并且客户端验证已打开(默认为 true)时,它不会回发,因此服务器附带活动永远不会受到打击。

您可以通过将属性 EnableClientScript 设置为 false 来关闭验证器控件上的客户端验证:

<asp:RequiredFieldValidator ID="TextBoxRequiredValidator" 
    ControlToValidate="NumberTextBox"
    EnableClientScript="False"
    Display="Dynamic" 
    ErrorMessage="Please enter a value."
    Text="*"
    runat="server"/>

取自 MSDN 文档。

【讨论】:

  • 不会关闭客户端验证只会导致两个验证器触发服务器端并导致 Page.IsValid 为假。我认为他想要的是将两组文本框按钮分开,以便验证仅在单个按钮文本框对上触发。
  • @sathish 关闭客户端验证不是解决方案。您是否在服务器端单击事件上测试 Page.IsValid。我想你会发现它是假的。
  • @madcapnmckay,是的,你是对的。它总是返回错误。什么是正确的解决方案,我从过去两天一直在寻找这个。如果您有任何解决方案,请帮助我。
  • @sathish 如果您发布您的标记和事件处理程序,我会看看我能做什么。
猜你喜欢
  • 2019-02-05
  • 1970-01-01
  • 2016-08-03
  • 2020-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-26
相关资源
最近更新 更多