1

我有一堆文本框和一个保存按钮来更新一些东西。当我单击保存时,我在代码隐藏文件中有确定它们是否正确填写的代码。

如果它们没有正确填写,我想以警报的形式显示错误消息。

做这个的最好方式是什么?按下按钮显然会使页面回发,所以我想在 URL 中添加一些东西,mypage.aspx?errormessage=blahblah但我不知道这是否是最好的方法,甚至是如何做到这一点......

有什么建议么?

4

7 回答 7

3

模态警报很糟糕,回发也是如此。尝试在客户端进行尽可能多的检查,而无需往返服务器。请参阅jQuery Validation plugins 以了解较少干扰的验证方式。

于 2009-09-18T09:15:19.600 回答
1

您可以使用 CustomValidator 来触发显示警报框的客户端脚本吗?

于 2009-09-18T09:17:06.650 回答
1

您可以在服务器端错误处理代码中使用 ClientScript.RegisterStartupScript() 方法来编写一个调用 alert('message') 的 javascript 片段,如下所示

private void ShowErrorMessage(string message)
{
    string script = "alert('" + message + "');";
    ClientScript.RegisterStartupScript(typeof(MyPage), "errorScript", script, true);
}

但我建议您改用验证器。如果您实现自己的自定义验证器,则可以使其发出可以在提交之前运行的客户端脚本,从而完全避免回发。

验证器的一个好处是它们的错误消息可以显示在页面上的 ValidatorSummary 中,避免了丑陋的警报框。

于 2009-09-18T09:23:59.430 回答
0

首先,我不建议向用户显示模式警报框。

您可以从服务器端代码调用 javascript 函数,并在该函数中弹出错误。

或者您可以发出 AJAX 请求,在服务器端验证后,您可以将响应发送回客户端。

于 2009-09-18T09:15:13.157 回答
0

ASP.NET 的各种验证控件(启用了客户端验证),再加上适当的错误消息和/或摘要消息,对于大多数情况来说已经足够了。

对于“AJAX 感觉和行为”,将控件放入更新面板也很容易实现。

于 2009-09-18T09:19:13.933 回答
0

尽可能多地使用您的验证器,它们向客户端呈现一些 javascript,因此您可以使用这些控件进行大量验证,并且只有当它们都满意时,它才允许提交页面。

它们确实会在每次提交时触发,因此如果您不希望每个提交操作都触发它们,则可以将控件作为验证组的一部分。

他们可以使用正则表达式验证输入,确保一个字段有一个值,还有更多。

然后是声明“消息”的属性和显示所有验证器消息的控件。一切都非常流畅,并内置在 IDE 中。

去检查验证器控件。

于 2009-09-18T09:21:50.307 回答
0

在您的按钮单击事件中尝试以下代码:

string strErr="Error!";//Put your error message here
ClientScript.RegisterStartupScript(GetType(), "scrptName", "javascript: alert('"+strErr+"'); ", true);

它将显示一条警报消息。

否则在您的 aspx 页面上放置标签并在 page_load 事件中设置可见 false。当您的按钮事件中发生错误时,将标签可见性设置为“true”并使用错误消息填充标签文本。

于 2009-09-18T09:32:10.967 回答