This is a migrated thread and some comments may be shown as answers.

RadDataForm and server side validation

0 Answers 121 Views
DataForm
This is a migrated thread and some comments may be shown as answers.
Marius
Top achievements
Rank 1
Marius asked on 27 Sep 2017, 07:02 PM
Does RadDataForm support validation? I want to add RequiredFieldValidator and do a server side validation.
I am using DataForm with SelectMethod/UpdateMethod (Model Binding) and ValidationSummary.
I start the form in Edit Mode.

When I click Update and the field is empty, update method does not get called. There are no errors displayed on the page though. I can see that NameCustomValidator_ServerValidate method is called and it sets IsValid to false.

If the field is not empty then update method is called and works as expected.

I am using version 2017.2.711.45

I was able to successfully use validation with RadGrid.

My code...

<asp:ValidationSummary ID="ValidationErrors" runat="server" />
 
<telerik:RadDataForm ID="DataForm" runat="server" SelectMethod="GetDetails" UpdateMethod="UpdateDetails"
            ItemType="MyData" DataKeyNames="ID"
            OnPreRender="DataForm_PreRender" ItemPlaceholderID="itemPlaceholder1">
    <LayoutTemplate>
        <div id="itemPlaceholder1" runat="server"></div>
    </LayoutTemplate>
    <ItemTemplate>Empty Read Only Page</ItemTemplate>
    <EditItemTemplate>
        <div>
            <telerik:RadButton ID="InsertButton1" runat="server" ButtonType="StandardButton" CommandName="Update" Text="Update" />
            <telerik:RadButton ID="CancelButton1" runat="server" ButtonType="StandardButton" CausesValidation="False" CommandName="Cancel" Text="Cancel Changes" />
        </div>
        <table>
            <tr>
                <td><telerik:RadLabel ID="NameLabel" runat="server" AssociatedControlID="NameTBox">Name:</telerik:RadLabel></td>
                <td>
                    <telerik:TextBox ID="NameTBox" runat="server" Text="<%# BindItem.Name %>"></telerik:TextBox>
                    <asp:RequiredFieldValidator ID="NameValidator" runat="server" ControlToValidate="NameTBox" ErrorMessage="Name is required" Text="!" Display="Static" />
                    <asp:CustomValidator ID="NameCustomValidator" runat="server" ControlToValidate="NameTBox" OnServerValidate="NameCustomValidator_ServerValidate" ErrorMessage="Name is required" Text="!" Display="Static" />
                </td>
            </tr>
        </table>
     </EditItemTemplate>
</telerik:RadDataForm>

 

Start DataForm in edit mode

protected void DataForm_PreRender(object sender, EventArgs e)
{
    // Display Edit mode when first loaded
    // Stay in Edit mode after update
    RadDataForm editForm = (RadDataForm) sender;
    if (editForm.Items.Count() > 0)
    {
        RadDataFormItem item = editForm.Items[0];
        item.FireCommandEvent("Edit", "");
    }
}

This does get called.

protected void NameCustomValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
    args.IsValid = !string.IsNullOrEmpty(args.Value);
}

 

Thanks

No answers yet. Maybe you can help?

Tags
DataForm
Asked by
Marius
Top achievements
Rank 1
Share this question
or