我有一堆文本框和一个保存按钮来更新内容。当我单击“保存”时,我会在代码隐藏文件中确定是否正确填写了代码。
如果未正确填写,我希望以警告的形式显示错误消息。
最好的方法是什么?按下按钮显然会使页面回发,所以我考虑向URL添加一些内容,如mypage.aspx?errormessage=blahblah
,但我不知道这是最好的方法,甚至不知道如何做...
有什么建议吗?
答案 0 :(得分:3)
模态警报很糟糕,回发也是如此。尝试在客户端尽可能多地检查,而无需往返服务器。请参阅jQuery Validation插件,了解更少侵入性的验证方法。
答案 1 :(得分:1)
您是否可以使用CustomValidator触发显示警告框的客户端脚本?
答案 2 :(得分:1)
您可以使用服务器端错误处理代码中的ClientScript.RegisterStartupScript()方法编写一个调用alert('message')的javascript片段,类似这样的
private void ShowErrorMessage(string message)
{
string script = "alert('" + message + "');";
ClientScript.RegisterStartupScript(typeof(MyPage), "errorScript", script, true);
}
但我建议你改用验证器。如果你实现自己的自定义验证器,你可以让它发出可以在提交之前运行的客户端脚本,以避免完全回发。
验证器的一个好处是它们的错误消息可以显示在页面上的ValidatorSummary中,避免使用丑陋的警告框。
答案 3 :(得分:0)
首先,我不建议向用户显示模态警报框。
您可以从服务器端代码调用javascript函数,在该函数中可以弹出错误。
或者您可以发出AJAX请求,在服务器端验证后,您可以向客户端发送回复。
答案 4 :(得分:0)
ASP.NET的各种验证控件(启用了客户端验证),加上正确的错误消息和/或摘要消息,对于大多数情况来说都足够了。
对于'AJAX感觉和行为',将控件放入更新面板也很容易实现。
答案 5 :(得分:0)
尽可能多地使用你的验证器,它们会向客户端呈现一些javascript,因此你可以使用这些控件进行大量验证,并且只有当它们都满意时才允许页面提交。
他们会在每次提交时触发,因此如果您不希望每个提交操作都触发它们,则将控件作为验证组的一部分。
他们可以使用正则表达式验证输入,确保字段有值,还有一些值。
然后有属性声明'消息'和控件以显示所有验证器消息。所有这些都非常嗖嗖,并且内置于IDE中。
查看验证器控件。
答案 6 :(得分:0)
在按钮点击事件中尝试以下代码:
string strErr="Error!";//Put your error message here
ClientScript.RegisterStartupScript(GetType(), "scrptName", "javascript: alert('"+strErr+"'); ", true);
它会显示一条警告信息。
否则在您的aspx页面上放置一个标签,并在page_load事件中设置可见的false。 当您的按钮事件发生错误时,将标签可见性设置为“true”,并使用错误消息填充标签文本。