skip to Main Content

I’m creating an ASP site where the user has to fill out a form. Textboxes, dropdownlists, and I’m using Bootstrap 4 for the style and the whole content is in an update panel so the page feels responsive without having to do a full postback.

So when the user hits the submit button, I’m checking if any of the textboxes or dropdownlists are empty. If they are, I don’t insert into the database, and I append "is-invalid" to the empty fields’ CssClass.

Control.CssClass += " is-invalid";

Up to this point, it’s all fine. The empty fields get red.

But then if the user fills in the empty fields and click on the submit again, the fields remain red, even though I replace the "is-invalid" with nothing.

Control.CssClass.Replace(" is-invalid", "");

So my question is, why doesn’t the red disappear? If changing the CssClass works from the CodeBehind when appending, then why doesn’t it work when I’m removing?

PS.: I know I could use javascript for it, but I’d prefer the whole checking step to be at one place, instead of one half of it being .cs and the other half of it being javascript. But if I can’t remove from the CodeBehind, then I’m going to use javascript, but I’m hoping there is a solution.

2

Answers


  1. Where in the page lifecycle have you implemented this? It sounds like a good first place to look.

    It would also be helpful to see your code.

    Login or Signup to reply.
  2. Control.CssClass.Replace(" is-invalid", "");

    That takes the string from the CssClass property, creates a new string without the is-invalid value, and then throws the new string away. The value of the property will not be changed.

    If you want to modify the value of the property, you need to update it:

    Control.CssClass = Control.CssClass.Replace(" is-invalid", "");
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search