the control triggering the postback has to have causes validation set to
true, and have the validation group set to match your specification.
-- bruce (sqlwork.com)
"Mel" wrote:
> I have a GridView that is bound to a DataTable. I decided to allow
> the user to change the column data right in the ItemTemplate. Then
> user won't need to click Edit to change the values and then click
> Update to save them because for this application the user will need to
> edit the data in every row so I thought the ItemTemplate would be a
> better solution. However, when I place the controls in my
> ItemTemplate my Validators are not being called at all when they enter
> invalid data. Won't the GridView work this way?
>
> Here is a small snippet of one item template column:
> <asp:TemplateField HeaderText="Duration (days)"
> SortExpression="Duration">
> <EditItemTemplate>
> </EditItemTemplate>
> <ItemTemplate>
> <asp:TextBox ID="txtDuration" runat="server" Text='<%#
> Bind("[Duration]") %>' Width="56px" CausesValidation="True"
> Wrap="False" ValidationGroup="AllValidators"></asp:TextBox><br />
> <asp:RequiredFieldValidator ID="rfvDuration" runat="server"
> ControlToValidate="txtDuration"
> ErrorMessage="Enter a Duration (number of days)."
> SetFocusOnError="True" Display="Dynamic"
> ValidationGroup="AllValidators"></asp:RequiredFieldValidator><br />
> <asp:RangeValidator ID="rvDuration" runat="server"
> ControlToValidate="txtDuration"
> ErrorMessage="Enter a number between 0 and 365 days."
> MaximumValue="365"
> MinimumValue="0" SetFocusOnError="True" Display="Dynamic"
> Type="Integer" ValidationGroup="AllValidators"></asp:RangeValidator>
> </ItemTemplate>
> <ItemStyle VerticalAlign="Top" />
> </asp:TemplateField>
>
|