首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASPX的C# TextBox.Validating取消事件

ASPX的C# TextBox.Validating取消事件
EN

Stack Overflow用户
提问于 2012-04-17 02:58:35
回答 2查看 1.2K关注 0票数 0

我正在尝试将代码从WinForm转换为WinApp,但我对aspx知之甚少,对javascript也一无所知。

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

text.Validating += new CancelEventHandler(boolean_Validating);

转到

代码语言:javascript
复制
    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没有text.Validating部件的定义。我还能如何使用Cancel事件处理程序验证文本?

EN

回答 2

Stack Overflow用户

发布于 2012-04-17 03:05:03

在asp.net中,我们使用验证控件。它们可以在客户端(如果用户还没有在浏览器中禁用javascript )和服务器端(因此您可以确保用户不只是禁用js,并且可以立即自由地利用您的应用程序)来处理工作。

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

我不能在这里写下所有内容,因为一本书中可能有多个章节涵盖了这个主题,但可以在这里查看更多信息:http://www.w3schools.com/aspnet/aspnet_refvalidationcontrols.asp

http://msdn.microsoft.com/en-us/library/aa479013.aspx

票数 0
EN

Stack Overflow用户

发布于 2012-04-17 03:07:11

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

因此,如果要验证文本框的文本,通常需要一个按钮来提交给服务器,然后该按钮单击代码将获取该值并验证它。如果无效,您可以在HTML中标记页面或显示一些控件,然后将该信息呈现回用户的浏览器。

示例:

代码语言:javascript
复制
 <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
复制
 protected void buttonSubmit_Click(object sender, EventArgs e)
 {
     if(string.IsNullOrEmpty(textName.Text))
     {
         panelError.Visible = true;
     }
     else
     {
         // Save to Database, whatever
     }
 }

此外,您可以使用javascript在客户端验证这些组件,从而消除到服务器的往返行程(尽管您仍然应该验证数据服务器端)。例如,使用jQuery:

代码语言:javascript
复制
 $('form').submit(function()
 {
     if($.trim($('.someTextYo').val()) == '')
        return false;

     return true;
 });

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10179981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档