?
Solved

Required field validation in grid .

Posted on 2011-03-24
3
Medium Priority
?
738 Views
Last Modified: 2012-05-11

I have a grid with a textbox and dropdown template fields and I have a required field validator for each. The gridview contains 15 rows.

How can I make the validation appear when the save button is clicked, just for some specific rows and not for all rows?

Any Solutions.
0
Comment
Question by:rohitnet100
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 11

Accepted Solution

by:
SAMIR BHOGAYTA earned 2000 total points
ID: 35212313
Hi, use this code

   1. For each of your existing RequiredFieldValidators that display the "Please provide text for 'Name' field" message you will need to set:
          * EnableClientScript="false"
          * ValidationGroup="vgTxtName" (provide your own name)
          * ErrorMessage="" (or remove it altogether; the CustomValidator will now be responsible for this)
      You have the option of displaying nothing at all (less clear to the user) or displaying an asterisk to indicate which validator is invalid.
      Option 1:
          * Display="None"
      Option 2 (preferred):
          * Display="Dynamic"
          * Set the text in between the validator tags to: *
   2. No changes needed for your ValidationSummary control (it should be neutral and not have a ValidationGroup attribute set, which is the default)
   3. Add a CustomValidator (see code below)
          * Add an eventhandler for the CustomValidator's ServerValidate event (you can just double click it from the designer to have it generated)
          * Implement the eventhandler logic (see code below)

The idea is not to directly allow the page to handle those RequiredFieldValidators anymore and instead we'll let the CustomValidator do it.

TextBox RequiredFieldValidator example (you should have something that looks like this with relevant ID names which corresponds to step 1 above):

Option 1:

<asp:RequiredFieldValidator ControlToValidate="txt1" ID="rfv1" runat="server"
EnableClientScript="false" Display="None" ValidationGroup="vgTxtName" />

Option 2:

<asp:RequiredFieldValidator ControlToValidate="txt1" ID="rfv1" runat="server"
EnableClientScript="false" Display="Dynamic" ValidationGroup="vgTxtName">*
</asp:RequiredFieldValidator>

CustomValidator Markup (you can place this anywhere sensible, such as next to the ValidationSummary control):

<asp:CustomValidator ID="cvName" runat="server" Display="None"
ErrorMessage="Please provide text for 'Name' field"
OnServerValidate="cvName_ServerValidate" />

The error message here replaces the ones from the individual validators. Also notice there's no ControlToValidate set, which is valid for this type of validator and is useful for applying validation covering multiple controls.

CustomValidator EventHandler (cvName_ServerValidate):

protected void cvName_ServerValidate(object source, ServerValidateEventArgs args)
{
    // Validate vgTxtName group
    Page.Validate("vgTxtName");

    // .NET 3.5 - add using System.Linq;
    args.IsValid = Page.GetValidators("vgTxtName")
                        .OfType<RequiredFieldValidator>()
                        .All(v => v.IsValid);

    // .NET 2.0 (use either this or the above, not both)
    bool isValid = true;
    foreach (RequiredFieldValidator validator in Page.GetValidators("vgTxtName"))
    {
        isValid &= validator.IsValid;
    }
    args.IsValid = isValid;
}
0
 

Author Closing Comment

by:rohitnet100
ID: 35215402
thanks much
0
 

Author Comment

by:rohitnet100
ID: 35215424
Also, how to achieve if i want to make validation appear when the save button is clicked, just for some specific columns and not for all columns?
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: DanRollins
This article describes a JavaScript program that creates a maze made of hexagonal cells.  In Part 2 (http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/A_7850-Hex-Maze-Part-2.html), we'll extend the program by adding a depth-…
Originally, this post was published on Monitis Blog, you can check it here . In business circles, we sometimes hear that today is the “age of the customer.” And so it is. Thanks to the enormous advances over the past few years in consumer techno…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…
Suggested Courses

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question