Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#文本框。正在验证ASPX的取消事件_C#_Asp.net_Validating Event - Fatal编程技术网

C#文本框。正在验证ASPX的取消事件

C#文本框。正在验证ASPX的取消事件,c#,asp.net,validating-event,C#,Asp.net,Validating Event,我试图将代码从WinForm转换为WinApp,但我对aspx知之甚少,对javascript一无所知 我已经通过编程创建了一个文本框,它将被赋予文本。然后通过如下验证方法传递文本: text.Validating+=新的CancelEventHandler(布尔值\u验证) 去 private void boolean_Validating(object sender, CancelEventArgs e) { TextBox textBox = (TextBo

我试图将代码从WinForm转换为WinApp,但我对aspx知之甚少,对javascript一无所知

我已经通过编程创建了一个文本框,它将被赋予文本。然后通过如下验证方法传递文本:

text.Validating+=新的CancelEventHandler(布尔值\u验证)

    private void boolean_Validating(object sender, CancelEventArgs e)
    {
        TextBox textBox = (TextBox)sender;
        string boolean = textBox.Text;

        string message = null;
        if (!checkBooleanSyntax(boolean, out message))
        {
            Response.Write("Error: " + message);
            e.Cancel = true;

            textBox.Text = message;
        }
    }

ASPX没有
文本的定义。正在验证
部分。如何使用取消事件处理程序验证文本?

在asp.net中,我们使用验证控件。这些可以在客户端(如果用户没有在浏览器中禁用javascript)和服务器端(这样您就可以确保用户不仅禁用js,还可以立即自由利用您的应用程序)完成任务

如果您需要一些具有特定逻辑的特殊验证,您可以自己编写一个自定义验证程序控件

不能将所有内容都写在此处,因为一本书中的多个章节都可以涵盖此主题,但请查看此处以了解更多信息:


您似乎已经习惯了有状态应用程序很长一段时间了。web服务器不会取消请求-您只需获取提供给您的信息,然后向他们发送响应

因此,如果要验证文本框的文本,通常需要向服务器提交一个按钮,然后该按钮单击代码获取值并对其进行验证。如果无效,则使用HTML标记页面或显示一些控件,然后将该信息呈现回用户的浏览器

例如:

 <asp:TextBox ID="textName" runat="server" CssClass="someTextYo" />
 <asp:Panel ID="panelError" runat="server" Visible="false">
     You entered bad stuff, yo
 </asp:Panel>
 <asp:Button ID="buttonSubmit" runat="server" Click="buttonSubmit_Click" />
此外,您可以使用javascript在客户端验证这些组件,从而消除往返服务器的需要(不过,您也应该验证数据服务器端)。例如,使用jQuery:

 $('form').submit(function()
 {
     if($.trim($('.someTextYo').val()) == '')
        return false;

     return true;
 });

您可以通过验证返回
false
的表单提交回调来取消表单发布

谢谢,Tejs,但是用户没有将信息提交到文本中;上一页的代码正在发送正在收集的文本。textox的验证应该在用户移动到下一页时自动完成。如果您说的是在用户只导航到其他地方时(例如通过单击
标记)验证值,那么这是不可能的。你需要向服务器发送一些请求来做任何事情。嗯。。。我不知道你是什么意思。你说的“验证应该在用户移动到下一页时自动完成”是什么意思?哦,哇!我是个白痴。对不起,你说得对,验证部分是在用户单击按钮时进行的。谢谢你,沃尔特。我来看看。好的,我做了一个
booleanCustomValid_ServerValidate
事件,然后我将按钮设置为
booleanCustomValid.Validate()这样行吗?你能用你正在试验的新代码更新你的问题吗?无论如何,尝试将1:1的windows应用程序重写为web应用程序通常是一件非常糟糕的事情。是的,我也开始这么想。我的上司也是,因为我被重新分配到一个新项目,所以还是要谢谢你。
 $('form').submit(function()
 {
     if($.trim($('.someTextYo').val()) == '')
        return false;

     return true;
 });