Click here to Skip to main content
15,909,373 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
hi all

I have a gridview, there is some textboxs and dropdownlists are present in editable mode of row, i want to perform validation for that textboxs and dropdownlists while updateing that row.

i tryed but validations are not happening but row is updateing.

here follow my code:

XML
<Columns>
                    <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
                        <HeaderTemplate>
                            Customer Name</HeaderTemplate>
                        <ItemTemplate>
                            <%#Eval ("Customer") %></ItemTemplate>
                        <EditItemTemplate>
                            <asp:DropDownList ID="ddlCustomer" runat="server" AppendDataBoundItems="true" DataSource='<%#GetCustomer() %>'
                                SelectedValue='<%# Bind("CustomerID") %>' DataTextField="CustomerName" DataValueField="CusVenID" >
                            </asp:DropDownList>
                            <asp:RequiredFieldValidator ID="reqfvCustomerName" runat="server" InitialValue="-1" ControlToValidate="ddlcustomer"
                                 ValidationGroup="EditrowValidation" ErrorMessage="select Customer"
                                Display="Dynamic" Text ="*"></asp:RequiredFieldValidator>

                        </EditItemTemplate>
                        <FooterTemplate>
                            <asp:DropDownList ID="ddlcustomer" runat="server" AppendDataBoundItems="true" DataSource='<%#GetCustomer() %>'
                                DataTextField="CustomerName" DataValueField="CusVenID" ValidationGroup ="FtrowValidation">
                                <asp:ListItem Value="-1">-Select-</asp:ListItem>
                            </asp:DropDownList>
                           <asp:RequiredFieldValidator ID="reqfvCustomerName" runat="server" InitialValue="-1" ControlToValidate="ddlcustomer"
                                 ValidationGroup="FtrowValidation" ErrorMessage="select Customer"
                                Display="Dynamic" Text ="*"></asp:RequiredFieldValidator>

                        </FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
                        <HeaderTemplate>
                            Vendor Name</HeaderTemplate>
                        <ItemTemplate>
                            <%#Eval ("Vendor") %></ItemTemplate>
                        <EditItemTemplate>
                            <asp:DropDownList ID="ddlVendorname" runat="server" AppendDataBoundItems="true" DataSource='<%# GetVendor() %>'
                                SelectedValue='<%# Bind("VendorID") %>' DataTextField="VendorName" DataValueField="CusVenID">
                            </asp:DropDownList>
                            <asp:RequiredFieldValidator ID ="reqfvVendorName" runat ="server" ControlToValidate ="ddlVendorname"
                            InitialValue="-1" ValidationGroup ="EditrowValidation" ErrorMessage ="select Vendor" Display ="Dynamic" Text ="*" >
                            </asp:RequiredFieldValidator>

                        </EditItemTemplate>
                        <FooterTemplate>
                            <asp:DropDownList ID="ddlVendorname" runat="server" AppendDataBoundItems="true" DataSource='<%# GetVendor() %>'
                                DataTextField="VendorName" DataValueField="CusVenID">
                                <asp:ListItem Value="-1">-Select-</asp:ListItem>
                            </asp:DropDownList>
                            <asp:RequiredFieldValidator ID ="reqfvVendorName" runat ="server" ControlToValidate ="ddlVendorname"
                            InitialValue="-1" ValidationGroup ="FtrowValidation" ErrorMessage ="select Vendor" Display ="Dynamic" Text ="*" ></asp:RequiredFieldValidator>

                        </FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
                        <HeaderTemplate>
                            ZipCode</HeaderTemplate>
                        <ItemTemplate>
                            <%#Eval("Zipcode")%></ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtZipcode" runat="server" Text='<%#Eval("Zipcode")%>' Width="70"
                                MaxLength="6" ></asp:TextBox>
                            <asp:RequiredFieldValidator id ="reqfvZipcode" runat ="server" ControlToValidate="txtZipcode" ErrorMessage ="Enter Zipcode"
                            ValidationGroup ="EditrowValidation" Display ="Dynamic" Text ="*"></asp:RequiredFieldValidator>
                            <asp:CompareValidator ID="cvZipcode" runat="server" ControlToValidate="txtZipcode"
                                Operator="DataTypeCheck" Type="Integer" Display="Dynamic" ErrorMessage="Zipcode should be numeric only" ></asp:CompareValidator>
                        </EditItemTemplate>
                        <FooterTemplate>
                            <asp:TextBox ID="txtZipcode" runat="server" Width="70" MaxLength="6"></asp:TextBox>
                            <asp:RequiredFieldValidator id ="reqfvZipcode" runat ="server" ControlToValidate="txtZipcode" ErrorMessage ="Enter Zipcode"
                            ValidationGroup ="FtrowValidation" Display ="Dynamic" Text ="*"></asp:RequiredFieldValidator>
                            <asp:CompareValidator ID="cvZipcode" runat="server" ControlToValidate="txtZipcode"
                                Operator="DataTypeCheck" Type="Integer" Display="Dynamic" ErrorMessage="Zipcode should be numeric only" ValidationGroup ="FtrowValidation" Text ="*"></asp:CompareValidator>
                            </FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
                        <HeaderTemplate>
                            Location</HeaderTemplate>
                        <ItemTemplate>
                            <%#Eval ("Location")%></ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtLocation" runat="server" Text='<%#Eval ("Location")%>' Width="90"></asp:TextBox>
                              <asp:RequiredFieldValidator ID ="reqfvLocation" runat ="server" Display="Dynamic" ErrorMessage ="Enter Location"
                             ValidationGroup ="EditrowValidation" ControlToValidate ="txtLocation" Text ="*"></asp:RequiredFieldValidator>
                             </EditItemTemplate>
                        <FooterTemplate>
                            <asp:TextBox ID="txtLocation" runat="server" Width="90"></asp:TextBox>
                            <asp:RequiredFieldValidator ID ="reqfvLocation" runat ="server" Display="Dynamic" ErrorMessage ="Enter Location"
                             ValidationGroup ="FtrowValidation" ControlToValidate ="txtLocation" Text ="*"></asp:RequiredFieldValidator>
                            </FooterTemplate>

                    </asp:TemplateField>
                    <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
                        <HeaderTemplate>
                            City</HeaderTemplate>
                        <ItemTemplate>
                            <%#Eval("City")%></ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtCity" runat="server" Text='<%#Eval("City")%>' Width="90"></asp:TextBox>
                            <asp:RequiredFieldValidator ID ="reqfvCity" runat ="server" ControlToValidate ="txtCity" Display ="Dynamic"
                            ErrorMessage ="Enter City" ValidationGroup ="EditrowValidation" Text ="*"></asp:RequiredFieldValidator>
                            </EditItemTemplate>
                        <FooterTemplate>
                            <asp:TextBox ID="txtCity" runat="server" Width="90"></asp:TextBox>
                            <asp:RequiredFieldValidator ID ="reqfvCity" runat ="server" ControlToValidate ="txtCity" Display ="Dynamic"
                            ErrorMessage ="Enter City" ValidationGroup ="FtrowValidation" Text ="*"></asp:RequiredFieldValidator>
                            </FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
                        <HeaderTemplate>
                            State</HeaderTemplate>
                        <ItemTemplate>
                            <%#Eval("State")%></ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox runat="server" ID="txtState" Text='<%#Eval("State")%>' Width="90"></asp:TextBox>
                            <asp:RequiredFieldValidator ID ="reqfvState" runat ="server" Display ="Dynamic" ErrorMessage="Enter State"
                            ControlToValidate="txtState" ValidationGroup="EditrowValidation" Text ="*"></asp:RequiredFieldValidator>
                        </EditItemTemplate>
                        <FooterTemplate>
                            <asp:TextBox ID="txtState" runat="server" Width="90"></asp:TextBox>
                            <asp:RequiredFieldValidator ID ="reqfvState" runat ="server" Display ="Dynamic" ErrorMessage="Enter State"
                            ControlToValidate="txtState" ValidationGroup="FtrowValidation" Text ="*"></asp:RequiredFieldValidator>
                            </FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
                        <HeaderTemplate>
                            Region</HeaderTemplate>
                        <ItemTemplate>
                            <%#Eval("Region")%></ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtRegion" runat="server" Text='<%#Eval("Region")%>' Width="90"></asp:TextBox>
                            <asp:RequiredFieldValidator ID ="reqfvRegion" runat ="server" Display ="Dynamic" ErrorMessage ="Enter Region"
                            ControlToValidate="txtRegion" ValidationGroup ="EditrowValidation" Text ="*"></asp:RequiredFieldValidator>
                            </EditItemTemplate>
                        <FooterTemplate>
                            <asp:TextBox ID="txtRegion" runat="server" Width="90"></asp:TextBox>
                            <asp:RequiredFieldValidator ID ="reqfvRegion" runat ="server" Display ="Dynamic" ErrorMessage ="Enter Region"
                            ControlToValidate="txtRegion" ValidationGroup ="FtrowValidation" Text ="*"></asp:RequiredFieldValidator>
                            </FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
                        <HeaderTemplate>
                            RateCode</HeaderTemplate>
                        <ItemTemplate>
                            <%#Eval("RateCode")%></ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtRatecode" runat="server" Text='<%#Eval("RateCode")%>' Width="90"></asp:TextBox>
                              <asp:RequiredFieldValidator ID ="reqfvRatecode" runat ="server" Display ="Dynamic" ErrorMessage ="Enter Ratecode"
                            ControlToValidate="txtRateCode" ValidationGroup ="EditrowValidation" Text ="*"></asp:RequiredFieldValidator>
                           <asp:ValidationSummary ID ="vseditrow" runat ="server" DisplayMode="List" ShowMessageBox ="true" ValidationGroup="EditrowValidation" ShowSummary ="false" />

                          </EditItemTemplate>
                        <FooterTemplate>
                            <asp:TextBox ID="txtRateCode" runat="server" Width="90"></asp:TextBox>
                            <asp:RequiredFieldValidator ID ="reqfvRatecode" runat ="server" Display ="Dynamic" ErrorMessage ="Enter Ratecode"
                            ControlToValidate="txtRateCode" ValidationGroup ="FtrowValidation" Text ="*"></asp:RequiredFieldValidator>
                            </FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            IsActive</HeaderTemplate>
                        <ItemTemplate>
                            <asp:CheckBox ID="chkstatus" runat="server" Checked='<%#Eval("odIsActive") %>' Enabled="false" /></ItemTemplate>
                        <EditItemTemplate>
                            <asp:CheckBox ID="chkstatus" runat="server" Checked='<%#Eval("odIsActive") %>' /></EditItemTemplate>
                        <FooterTemplate>
                            <asp:CheckBox ID="chknewstatus" runat="server" /></FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <FooterTemplate>
                            <asp:Button ID="btnSave" runat="server" Text="Add" ValidationGroup="FtrowValidation" OnClick="InsertOriginDestination" />
                            <asp:ValidationSummary ID ="vsftrow" runat ="server" DisplayMode="List" ShowMessageBox ="true" ValidationGroup="FtrowValidation" ShowSummary ="false" />
                            </FooterTemplate>
                    </asp:TemplateField>

                    <asp:CommandField ShowEditButton="true" ButtonType="Button" />

                </Columns>



please anybody advise me.
Posted

I would recommend changing the
XML
<asp:CommandField ShowEditButton="true" ButtonType="Button" />

to a template field and set the validationGroup to your name on the edit template fields. See below

XML
<asp:TemplateField ShowHeader="False">
                <EditItemTemplate>
                    <asp:LinkButton ID="lbUpdate" runat="server" CausesValidation="True"
                        CommandName="Update" Text="Update" ValidationGroup="EditrowValidation"></asp:LinkButton>
                    &nbsp;<asp:LinkButton ID="lbCancel" runat="server" CausesValidation="False"
                        CommandName="Cancel" Text="Cancel"></asp:LinkButton>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:LinkButton ID="lbEdit" runat="server" CausesValidation="False"
                        CommandName="Edit" Text="Edit"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
 
Share this answer
 
Comments
udaysimha 22-Sep-11 1:22am    
Thanks jb_fubar it is working well.
pck.ns 30-Apr-12 8:45am    
thanx
its helped me too
I think the problem is with your Validator Control, when you are assigning the control name to ControlToValidate="ddlcustomer" property, you should take care, because there will not be any control named ddlcustomer at runtime, so the control's cliendID should be assigned to validator's ControlToValidate ptoperty, which you can do in row_databound event of your gridview, find the validator and say textbox control with FindControl method and assign the clintId of your textbox to validator's property.


mark as answer if solved ur problem.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900