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

Dynamically added User Control utilizing RadInputManager Validation locks up Postback

1 Answer 44 Views
Input
This is a migrated thread and some comments may be shown as answers.
Johnathan
Top achievements
Rank 1
Johnathan asked on 05 Mar 2012, 12:00 AM
I have a wizard, Regular ASP.NET for a custom sign up process as the Membership version did not fit the bill. One of the last steps includes a process to register several contacts to associate with the primary account. I wrote a User Control with basic fields for gather Name, Address, City and regular drop down for the State which utilizes a RequiredFieldValidator. This user control utilizes the RadInputManager for controlling the validation.

Here is the User Control markup:
<asp:Panel ID="pnlClient" runat="server">
    <asp:TextBox ID="tbClientName" runat="server"></asp:TextBox>
    <span class="width500">
        <asp:TextBox ID="tbAddress1" runat="server"></asp:TextBox>
    </span>
    <br />
    <span class="width250">
        <asp:TextBox ID="tbAddress2" runat="server"></asp:TextBox>
    </span>
    <br />
    <span class="width250">
        <asp:TextBox ID="tbCity" runat="server"></asp:TextBox>
    </span>
    <br />
    <asp:DropDownList ID="ddlState" runat="server" DataSourceID="EntityDS_StateProvince"
        DataTextField="Name" DataValueField="Id" AppendDataBoundItems="true">
        <asp:ListItem Text="[Resident State]" Value="ZZ"></asp:ListItem>
    </asp:DropDownList>
    <asp:RequiredFieldValidator ID="rfvStateProvince" runat="server" EnableViewState="true" EnableClientScript="true"
        ControlToValidate="ddlState" Display="Static"
        Enabled="true" ErrorMessage="Valid State is required." InitialValue="ZZ" />
    <br />
    <span class="width125">
        <asp:TextBox ID="tbZip" runat="server"></asp:TextBox>
    </span><span class="width300">
        <asp:TextBox ID="tbLetterName" runat="server"></asp:TextBox>
    </span>
    <br />
    <span class="width500">
        <asp:TextBox ID="tbEmail" runat="server">
        </asp:TextBox></span>
    <telerik:RadInputManager ID="rimClient" runat="server">
        <telerik:TextBoxSetting BehaviorID="tbbClientName" EmptyMessage="Name" ErrorMessage="Name required."
            Validation-IsRequired="true">
            <TargetControls>
                <telerik:TargetInput ControlID="tbClientName" />
            </TargetControls>
        </telerik:TextBoxSetting>
        <telerik:TextBoxSetting BehaviorID="tbbAddress1" EmptyMessage="Address 1" ErrorMessage="Address is required."
            Validation-IsRequired="true">
            <TargetControls>
                <telerik:TargetInput ControlID="tbAddress1" />
            </TargetControls>
        </telerik:TextBoxSetting>
        <telerik:TextBoxSetting BehaviorID="tbbAddress2" EmptyMessage="Address 2" Validation-IsRequired="false">
            <TargetControls>
                <telerik:TargetInput ControlID="tbAddress2" />
            </TargetControls>
        </telerik:TextBoxSetting>
        <telerik:TextBoxSetting BehaviorID="tbbCity" EmptyMessage="City" ErrorMessage="City is required"
            Validation-IsRequired="true">
            <TargetControls>
                <telerik:TargetInput ControlID="tbCity" />
            </TargetControls>
        </telerik:TextBoxSetting>
        <telerik:TextBoxSetting BehaviorID="tbbZip" EmptyMessage="Zip" ErrorMessage="Zip is required"
            Validation-IsRequired="true">
            <TargetControls>
                <telerik:TargetInput ControlID="tbZip" />
            </TargetControls>
        </telerik:TextBoxSetting>
        <telerik:TextBoxSetting BehaviorID="tbbContactName" EmptyMessage="Contact Client"
            ErrorMessage="Contact Client required" Validation-IsRequired="true">
            <TargetControls>
                <telerik:TargetInput ControlID="tbLetterName" />
            </TargetControls>
        </telerik:TextBoxSetting>
        <telerik:RegExpTextBoxSetting BehaviorID="tbbEmail" EmptyMessage="Email" ValidationExpression="^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"
            ErrorMessage="Invalid Email" Validation-IsRequired="true">
            <TargetControls>
                <telerik:TargetInput ControlID="tbEmail" />
            </TargetControls>
        </telerik:RegExpTextBoxSetting>
    </telerik:RadInputManager>
    <asp:EntityDataSource ID="EntityDS_State" runat="server" ConnectionString="name=LUEntities"
        DefaultContainerName="LUEntities" EnableFlattening="False" EntitySetName="StateProvinces"
        Where="s.ID != 'ZZ'">
    </asp:EntityDataSource>
</asp:Panel>


Step 1 of the wizard uses this control and works fine since only 1 instance of the user control is used. Validation occurs as it should.
Step 2 has an optional step to gather up a contact's beneficiary information. It is optional in the sense that some users choose to set it up later or can choose from a list of supplied Trust Attorneys. if they opt in then I enabled the User control and its subsequent validations. This works fine too.
Step 3 has an optional step to gather secondary beneficiaries information. This is where I am scratching my head. (See Markup)

Somewhere along the line one (or more) of these is failing/doing something unintentional. During Page Load I disable all of the radpanelitems featuring this User Control (ClientUC). I also parse the controls and disabled the RadInputManager as well as the RequiredFieldValidator within them.
<asp:WizardStep ID="Step_SecondBen" StepType="Step" Title="Secondary Beneficiaries">
    <telerik:RadAjaxPanel ID="rapBeneficiaries" runat="server" LoadingPanelID="RadAjaxLoadingPanel1">
        <telerik:RadButton ID="AddBen" runat="server" Text="Add" OnClick="AddBen_Click" AutoPostBack="true"
            CausesValidation="false">
        </telerik:RadButton>
        <telerik:RadPanelBar runat="server" ID="rpbBenList" ExpandMode="FullExpandedItem"
            OnItemClick="rpbBenList_ItemClick" Width="100%" Height="300px" CausesValidation="false">
            <Items>
                <telerik:RadPanelItem Text="Beneficiary 1" Expanded="true">
                    <Items>
                        <telerik:RadPanelItem>
                            <ItemTemplate>
                                <uc1:clientuc id="Beneficiary1" runat="server" />
                            </ItemTemplate>
                        </telerik:RadPanelItem>
                    </Items>
                </telerik:RadPanelItem>
                <telerik:RadPanelItem Text="Beneficiary 2">
                    <Items>
                        <telerik:RadPanelItem>
                            <ItemTemplate>
                                <uc1:clientuc id="Beneficiary2" runat="server" />
                            </ItemTemplate>
                        </telerik:RadPanelItem>
                    </Items>
                </telerik:RadPanelItem>
                <telerik:RadPanelItem Text="Beneficiary 3">
                    <Items>
                        <telerik:RadPanelItem>
                            <ItemTemplate>
                                <uc1:clientuc id="Beneficiary3" runat="server" />
                            </ItemTemplate>
                        </telerik:RadPanelItem>
                    </Items>
                </telerik:RadPanelItem>
                <telerik:RadPanelItem Text="Beneficiary 4">
                    <Items>
                        <telerik:RadPanelItem>
                            <ItemTemplate>
                                <uc1:clientuc id="Beneficiary4" runat="server" />
                            </ItemTemplate>
                        </telerik:RadPanelItem>
                    </Items>
                </telerik:RadPanelItem>
                <telerik:RadPanelItem Text="Beneficiary 4">
                    <Items>
                        <telerik:RadPanelItem>
                            <ItemTemplate>
                                <uc1:clientuc id="Beneficiary4" runat="server" />
                            </ItemTemplate>
                        </telerik:RadPanelItem>
                    </Items>
                </telerik:RadPanelItem>
            </Items>
        </telerik:RadPanelBar>
    </telerik:RadAjaxPanel>
</asp:WizardStep>

The Result I get is that I am unable to navigate forward even if i add (basically enable the user control) 0 beneficiaries. The Next button does not postback. I have added to the user control client side "OnError" functions to the RadInputManager however all 5 RIMs never hit the event (not sure why). I need a method that will tell me which validator is locking up the postback and how to properly address it. I can however postback using the previous button.

What am I missing?

1 Answer, 1 is accepted

Sort by
0
Johnathan
Top achievements
Rank 1
answered on 05 Mar 2012, 03:49 AM
Disregard, viewstate is needed for RadInputManager. Problem solved.
Tags
Input
Asked by
Johnathan
Top achievements
Rank 1
Answers by
Johnathan
Top achievements
Rank 1
Share this question
or