Solved

GridView Validation

Posted on 2008-06-11
3
762 Views
Last Modified: 2012-06-21
hi

I have a gridview with two columns that contain a textbox each that i would like to validate. Each row also contains an imagebutton that does some action. How do i make it so that it only validates for the specific row that the button was click?


Allan


<asp:GridView ID="gvPossibleAnswers" EnableViewState="true" AutoGenerateColumns="false" runat="server" OnRowCreated="gvPossibleAnswers_RowCreated" OnRowDataBound="gvPossibleAnswers_RowDataBound">
                        <Columns>
                            <asp:BoundField HeaderText="Option ID" DataField="OptionID" />
                            <asp:TemplateField HeaderText="Label Text">
                                <ItemTemplate>
                                    <asp:TextBox ID="txtOptionText" runat="server" Text=""></asp:TextBox>
                                    <asp:RequiredFieldValidator id="rfvOptionText" ControlToValidate="txtOptionText" ErrorMessage="Answer Text is missing" Display="none" runat="server"></asp:RequiredFieldValidator>                       
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Sort Order">
                                <ItemTemplate>
                                    <asp:TextBox ID="txtSortOrder" runat="server" Text=""></asp:TextBox>
                                    <asp:RegularExpressionValidator ID="revSortOrder" ControlToValidate="txtSortOrder" runat="server" ErrorMessage="Sort Order must be a digit" Display="none" ValidationExpression="^\d+$"></asp:RegularExpressionValidator>
                                </ItemTemplate>                        
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Status">
                                <ItemTemplate>
                                    <asp:DropDownList EnableViewState="true" ID="ddlStatusInd" runat="server">
                                        <asp:ListItem Value="0S1" Text="Active" />
                                        <asp:ListItem Value="0S0" Text="InActive" />
                                    </asp:DropDownList>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Actions">
                                <ItemTemplate>
                                    <asp:ImageButton ID="imgBtnAdd" runat="server" ImageUrl="~/Images/Delete.gif" OnClick="imgBtnAdd_Click" />
                                    <asp:ImageButton ID="imgBtnEdit" runat="server" ImageUrl="~/Images/Edit.gif" OnClick="imgBtnEdit_Click" />
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>

Open in new window

0
Comment
Question by:acadenilla
  • 2
3 Comments
 
LVL 15

Accepted Solution

by:
NazoUK earned 350 total points
ID: 21761455
Is OptionID a unique field for each row?

You could add a validationgroup to your validators and imagebutton, something like:

ValidationGroup = 'row<%#Eval("OptionID")'

This should create a unique validation group for each row and ensure the validators only act on the controls in their own row.
0
 

Author Closing Comment

by:acadenilla
ID: 31466168
thx nazouk

i got it work with your suggestion
0
 

Author Comment

by:acadenilla
ID: 21764086
Note i had to dynamically add ValidationSummary controls for each row in for the validation to show the error message.
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

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

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

840 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