gpt4 book ai didi

c# - 获取用于回发的验证组

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:56 25 4
gpt4 key购买 nike

我正在使用 C# (.NET 2.0) 处理遗留项目。在这个项目中有两个验证组。一种用于自定义登录控件,另一种用于用户提交时事通讯。我遇到的问题是,当用户提交订阅时事通讯时,在 page_prerender() 方法中触发了一些自定义代码,该方法仅应在用户尝试登录时触发。

我一直在寻找一种解决方案来识别两个组中的哪一个用于回发,这样我就可以在需要时忽略自定义代码。我的想法是尝试检查两个验证组中的哪一个正在用于验证。不幸的是,在谷歌上花了几个小时没有结果之后,我无法找到任何东西让我知道如何真正知道验证时使用了哪个验证组。有什么办法可以查出来吗?

<asp:Button ID="btn_newsletter" 
runat="server"
Text="Verzend"
ValidationGroup="newsLetter"
meta:resourcekey="bnt_newsletter"
OnClick="handleNewsLetter"
CssClass="roundedButtonBig"
/>


<asp:Button ID="LoginButton"
runat="server"
CommandName="Login"
Text="Inloggen"
ValidationGroup="lgnUser"
meta:resourcekey="LoginButtonResource1"
CssClass="roundedButtonBig"
/>

以下代码应仅在按下登录按钮时触发,并且需要在 Pre_render() 上完成。或者传递正确的 ValidationGroup(现在传递 null)。

protected void Page_PreRender(object sender, EventArgs e)
{

//Register custom ValdiationErrorService added errors to JavaScript so they can be added into the popup.
ValidationErrorService.RegisterServerValidationMessageScript(Page, null);

}

最佳答案

要检查哪个验证组有效,请调用:

Page.Validate(“newLetter”);

然后检查

Page.IsValid;

这将返回值。 Scott Gu 有更多关于他的 blog

edit 您还想知道在预渲染事件中单击了哪个按钮,这听起来也很像。虽然您无法从传递给页面预呈现的参数中找到这一点,但您可以依赖在 page_prerender 事件之前发生的按钮事件。在后面的 aspx 页面代码中,创建一个成员变量。此变量将用于指示是否应执行预渲染逻辑。

接下来,在两个按钮的点击事件中,设置局部变量以指示该按钮是否应在 page_prerender 事件中触发您想要的逻辑。

最后,在 page_prerender 方法中检查您的局部变量,并根据您的新成员变量将您的逻辑封装在 if 语句中。

快乐的足迹!

关于c# - 获取用于回发的验证组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6343757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com