繁体   English   中英

我有一个验证问题!

[英]i have got a validation problem!

我想亲自验证控件。 因此,当我按下按钮时,我会贴上标签和条件。

 protected void sendButton1_Click(object sender, EventArgs e)
{
    if (QuestionDetailsTextBox2.Text.Length > 5000)
    {
        QuestionDetailsTextBox2.Text = "You cant enter more than 5000 characters";
    }
    else if(QuestionTextBox1.Text.Length > 100)
    {
        QuestionDetailsTextBox2.Text = "You cant enter more than 100 characters";
    }
    else if (checkValidation())
    {

        QuestionTextBox1.BorderColor = System.Drawing.Color.Red;
    }
    else
    {
        Response.Redirect("AnswerQuestion.aspx");
    }
}

我添加了一个正则表达式验证器。 但是我也这样做:

  protected void topicDropDownMenu_SelectedIndexChanged1(object sender, EventArgs e)
{
    SubTopicDropDownList.Items.Clear();

    string[] chosenItem = topic[topicDropDownMenu.SelectedItem.Value];

    foreach (string item in chosenItem)
    {
        SubTopicDropDownList.Items.Add(item);
    }

}

再次,我需要按两次按钮,这样它才能重定向我:(... ajax是否仍然必要?

如果要立即响应,则必须将验证逻辑移至客户端。 这通常意味着您在处理回发事件之前,使用javascript编写验证逻辑,并从按钮的客户端click事件或文本框的change事件中调用它。

在后面的代码中进行检查需要往返服务器。 无论您是以这种方式执行并回发整个页面,还是使用ajax进行部分回发,在将数据发送到服务器和客户端等待响应时都会有一个延迟。 延迟有多大取决于要传输的数据量和网络状况。 这就是为什么ajax通常更快,它可以发送较小批数据的原因。

无论您处理客户端验证如何,通常认为最好在后面的代码中重复验证逻辑。 这是为了捕获用户禁用了客户端脚本的任何实例。

您正在寻找部分页面更新

您可以使用AJAX和UpdatePanel

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM