Link to home
Create AccountLog in
Avatar of imstac73
imstac73

asked on

Show validation messages on formview pageindex changing event

I am updating the current record on the pageindexchanging event on my formview if the page is valid.  If it is not valid I would like it to show the validation control messages where data is not valid; like how it works when you click the Update button.  I'm not sure what command I need to use to do this.  My current code is attached.
Protected Sub fvProjects2_PageIndexChanging(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.FormViewPageEventArgs) Handles fvProjects2.PageIndexChanging

        Page.Validate()


        If Page.IsValid Then
            fvProjects2.UpdateItem(True)
        Else


        End If




    End Sub

Open in new window

Avatar of sammySeltzer
sammySeltzer
Flag of United States of America image

       If Page.IsValid Then
            fvProjects2.UpdateItem(True)
        Else
           lblMessage.Visible = True
            lblMessage.Text = "data is not valid."
            lblMessage.ForeColor = System.Drawing.Color.Red
        End If

Then you create the label on the input form.

That's how I would do it but there are folks here who may have better ideas.
This would be the label on input

<FORM...

<asp:Label ID="lblMessage" runat="server" Text="Result:" Visible="false"></asp:Label>
</FORM>
Sorry I forgot it
Avatar of imstac73
imstac73

ASKER

I already have multiple validation controls in my form.  How do I get it to only make visible  the validation controls where the control value that it validates is invalid?  Here is my edititemtemplate.

<EditItemTemplate>
        
            <table cellpadding="0" width="900" cellspacing="0" border="0">
            <tr valign="top">
                <td width="20%"></td>
                <td width="60%" align="center"><PagerSettings FirstPageText="First" LastPageText="Last" Mode="NextPreviousFirstLast"
            NextPageText="Next" PageButtonCount="100" PreviousPageText="Previous" /></td>
                 <td width="20%" align="right">  
                 <div style="width:115px;">
                <div class="linkbutton-l"><asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="True" CommandName="Update"
                Text="Update"></asp:LinkButton></div>
                <div class="linkbutton-r"> 
                <asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" CommandName="Cancel"
                Text="Cancel"></asp:LinkButton></div>
                    <div class="clear"></div>
                    </div>
                
                </td>
            </tr>
            </table><br />
            
            <table class="projects" width="900" cellpadding="0" cellspacing="0">
                <tr>
                    <td class="header" style="width: 250px">
                        Priority:</td>
                    <td class="details" style="width: 292px">
                        <asp:DropDownList ID="ddl_priority" runat="server" SelectedValue='<%# Bind("Priority") %>'>
                            <asp:ListItem>1</asp:ListItem>
                            <asp:ListItem>2</asp:ListItem>
                            <asp:ListItem>3</asp:ListItem>
                            <asp:ListItem>4</asp:ListItem>
                            <asp:ListItem>5</asp:ListItem>
                        </asp:DropDownList></td>
                    <td class="header" style="width:250px">
                        Win Probability:</td>
                    <td class="details">
                        <asp:DropDownList ID="ddl_winprob" runat="server" SelectedValue='<%# Bind("Win_Probability") %>'>
                            <asp:ListItem Value="20" Selected="True">20%</asp:ListItem>
                            <asp:ListItem Value="40">40%</asp:ListItem>
                            <asp:ListItem Value="60">60%</asp:ListItem>
                            <asp:ListItem Value="80">80%</asp:ListItem>
                        </asp:DropDownList>
                        <asp:Label ID="Label11" runat="server" CssClass="requiredfield" Text="*"></asp:Label></td>
                </tr>
                <tr>
                    <td class="header" style="width: 168px">
                        Project Name:</td>
                    <td class="details" style="width: 292px">
                        <asp:TextBox ID="ProjectNameTextBox" runat="server" Text='<%# Bind("ProjectName") %>'
                            Width="246px" Height="33px" TextMode="MultiLine"></asp:TextBox>
                        <asp:Label ID="Label19" runat="server" CssClass="requiredfield" Text="*"></asp:Label></td>
                    <td class="header" style="width: 147px">
                        Est. Value:</td>
                    <td class="details">
                        <asp:TextBox ID="Est_ValueTextBox" runat="server" Text='<%# Bind("Est_Value") %>'
                            Width="64px"></asp:TextBox>
                        <asp:Label ID="Label18" runat="server" CssClass="requiredfield" Text="*"></asp:Label>
                        <strong>Million<asp:CompareValidator
                            ID="cvEstValue" runat="server" ControlToValidate="Est_ValueTextBox" CssClass="errormessages"
                            Display="Dynamic" ErrorMessage="Estimated Value must be greater than 0. " Operator="GreaterThanEqual"
                            SetFocusOnError="True" Type="Double" ValidationGroup="Errors" ValueToCompare="0.0"
                            Width="100%"></asp:CompareValidator></strong></td>
                </tr>
                <tr>
                    <td class="header">
                        Project Description:</td>
                    <td class="details">
                        <asp:TextBox ID="ProjectDescriptionTextBox" runat="server" Height="60px" Text='<%# Bind("ProjectDescription") %>'
                            Width="300px" MaxLength="100" TextMode="MultiLine"></asp:TextBox><br />
                        <cc1:TextBoxCounter ID="tboxcounterdescription" runat="server" Font-Bold="True" ForeColor="#000000"
                            MaxCharacterLength="1000" TextBoxControlId="ProjectDescriptionTextBox" Width="300px" DataFormatString="Character Max. {5}; {3} remaining" />
                    </td>
                    <td class="header" style="width: 147px; height: 48px">
                        Owner:</td>
                    <td class="details" style="height: 48px">
                        <asp:DropDownList ID="ddl_owner" runat="server" DataSourceID="SqlDataOwners" DataTextField="Owner"
                            DataValueField="OwnerID" SelectedValue='<%# Bind("OwnerID") %>' Width="216px">
                        </asp:DropDownList></td>
                </tr>
                <tr>
                    <td class="header">
                        Comments/Next Steps:</td>
                    <td class="details" colspan="3">
                        <asp:TextBox ID="CommentsTextBox" runat="server" Height="60px" Text='<%# Bind("Comments") %>'
                            Width="720px" MaxLength="500" TextMode="MultiLine"></asp:TextBox><br />
                        <cc1:TextBoxCounter ID="tboxcountercomments" runat="server" Font-Bold="True" ForeColor="#000000"
                            MaxCharacterLength="500" TextBoxControlId="commentstextbox" Width="300px" DataFormatString="Character Max. {5}; {3} remaining" />
                    </td>
                </tr>
                <tr>
                    <td class="header" style="width: 168px; height: 20px">
                        Location:</td>
                    <td class="details" style="width: 292px; height: 20px">
                        <asp:TextBox ID="LocationTextBox" runat="server" Text='<%# Bind("Location") %>' Width="261px"></asp:TextBox></td>
                    <td class="header" style="width: 147px; height: 20px">
                        Market:</td>
                    <td class="details" style="height: 20px">
                        <asp:DropDownList ID="ddl_market" runat="server" DataSourceID="SqlDataMarkets" DataTextField="Market"
                            DataValueField="MarketID" SelectedValue='<%# Bind("MarketID") %>' Width="224px">
                        </asp:DropDownList></td>
                </tr>
                <tr>
                    <td class="header" style="width: 168px; height: 20px">
                        Bid Release Date:</td>
                    <td class="details" style="width: 292px; height: 20px">
                        <cc2:DatePicker ID="date_bidrelease" runat="server" CalendarPosition="DisplayRight"
                            DateValue='<%# Bind("Bid_ReleaseDate") %>' />
                        &nbsp;<asp:Label ID="Label20" runat="server" CssClass="requiredfield" Text="*"></asp:Label>                      
                        <br />
                        <asp:CompareValidator ID="cvbidrelease" runat="server" ControlToValidate="date_bidrelease"
                            CssClass="errormessages" Display="Dynamic" ErrorMessage="Bid Release Date must be a valid date (mm/dd/yyyy)"
                            Operator="DataTypeCheck" Type="Date" SetFocusOnError="True"></asp:CompareValidator>
                    </td>
                    <td class="header" style="width: 147px; height: 20px">
                        Est. Bid Date:</td>
                    <td class="details" style="height: 20px">
                        <cc2:DatePicker ID="dpbiddate" runat="server" CalendarPosition="DisplayRight" DateValue='<%# Bind("Est_BidDate") %>' />
                        <asp:Label ID="Label21" runat="server" CssClass="requiredfield" Text="*"></asp:Label>
                        <br />
                        <asp:CompareValidator ID="cvbiddate" runat="server" ControlToValidate="dpbiddate"
                            CssClass="errormessages" Display="Dynamic" ErrorMessage="Est. Bid Date must be a valid date format (mm/dd/yyyy)."
                            Operator="DataTypeCheck" Type="Date" SetFocusOnError="True"></asp:CompareValidator></td>
                </tr>
                <tr>
                    <td class="header" style="width: 168px; height: 20px">
                        Est. Const. Start Date:</td>
                    <td class="details" style="width: 292px; height: 20px">
                        <cc2:DatePicker ID="date_startdate" runat="server" CalendarPosition="DisplayRight"
                            DateValue='<%# Bind("Est_StartDate") %>' />
                        <asp:Label ID="Label22" runat="server" CssClass="requiredfield" Text="*"></asp:Label><br />
                        <asp:CompareValidator ID="cvconstartdate" runat="server" ControlToValidate="date_startdate"
                            CssClass="errormessages" Display="Dynamic" ErrorMessage="Est. Bid Date must be a valid date format (mm/dd/yyyy)."
                            Operator="DataTypeCheck" Type="Date" SetFocusOnError="True"></asp:CompareValidator></td>
                    <td class="header" style="width: 147px; height: 20px">
                        Construction
                        <br />
                        Duration:</td>
                    <td class="details" style="height: 20px">
                        <asp:TextBox ID="tboxconduration" runat="server" Width="58px" Text='<%# Bind("Est_Duration", "{0:N1}") %>'></asp:TextBox>
                        <asp:Label ID="Label23" runat="server" CssClass="requiredfield" Text="*"></asp:Label>
                        <strong>Months<br />
                            <asp:RequiredFieldValidator ID="rvduration" runat="server" ControlToValidate="tboxconduration"
                                CssClass="errormessages" Display="Dynamic" ErrorMessage="Construction Duration is required." SetFocusOnError="True"></asp:RequiredFieldValidator>
                            <asp:CompareValidator ID="cvconduration" runat="server" ControlToValidate="tboxconduration"
                                CssClass="errormessages" Display="Dynamic" ErrorMessage="Construction Duration must be greater than 0."
                                Operator="GreaterThan" Type="Double" ValueToCompare="0.0" SetFocusOnError="True"></asp:CompareValidator></strong></td>
                </tr>
                <tr>
                    <td class="header" style="width: 168px; height: 20px">
                        Branch Office:</td>
                    <td class="details" style="width: 292px; height: 20px">
                        <asp:DropDownList ID="ddl_branch" runat="server" DataSourceID="SqlDataOffice"
                            DataTextField="Branch_Office" DataValueField="Branch_OfficeID" SelectedValue='<%# Bind("BranchOfficeID") %>'
                            Width="224px">
                        </asp:DropDownList></td>
                    <td class="header" style="width: 147px; height: 20px">
                        Sponsor:</td>
                    <td class="details" style="height: 20px">
                        <asp:DropDownList ID="ddl_sponsor" runat="server" DataSourceID="SqlDataSponsors"
                            DataTextField="Sponsor" DataValueField="SponsorInitials" SelectedValue='<%# Bind("SponsorID") %>'
                            Width="229px">
                        </asp:DropDownList></td>
                </tr>
                <tr>
                    <td class="header" style="width: 168px; height: 20px">
                        CM/GC:</td>
                    <td class="details" style="width: 292px; height: 20px">
                        <asp:TextBox ID="CM_GCTextBox" runat="server" Text='<%# Bind("CM_GC") %>' Width="286px"></asp:TextBox></td>
                    <td class="header" style="width: 147px; height: 20px">
                        Architect/<br />
                        Engineer:</td>
                    <td class="details" style="height: 20px">
                        <asp:TextBox ID="Architect_EngineerTextBox" runat="server" Text='<%# Bind("Architect_Engineer") %>'
                            Width="270px"></asp:TextBox></td>
                </tr>
                <tr>
                    <td class="header" style="width: 168px; height: 20px">
                        Construction Type:</td>
                    <td class="details" style="width: 292px; height: 20px">
                        <asp:ListBox ID="lbox_ConstructionType" runat="server" Width="195px" DataSourceID="SqlDataConstructionTypes" DataTextField="Construction_Type" DataValueField="Construction_Type" Height="84px"></asp:ListBox><br />
                        <strong>Hold Ctrl or Shift button to select multiple values.</strong></td>
                    <td class="header" style="width: 147px; height: 20px">
                        Scope:</td>
                    <td class="details" style="height: 20px">
                        <asp:TextBox ID="ScopeTextBox" runat="server" Height="31px" Text='<%# Bind("Scope") %>'
                            Width="238px"></asp:TextBox>
                        <asp:TextBox ID="ModifiedDateTextBox"
                    runat="server" Text='<%# Bind("ModifiedDate") %>' Visible="False" Width="56px"></asp:TextBox><asp:TextBox
                        ID="ModifiedByTextBox" runat="server" ReadOnly="True" Text='<%# Bind("ModifiedBy") %>'
                        Visible="False"></asp:TextBox></td>
                </tr>
                <tr>
                    <td class="header" style="width: 168px; height: 20px">
                        Status:</td>
                    <td class="details" colspan="3" style="height: 20px">
                        <asp:DropDownList ID="ddl_status" runat="server" DataSourceID="SqlDataStatuses"
                            DataTextField="Status" DataValueField="ProjectStatusID" SelectedValue='<%# Bind("StatusID") %>'
                            Width="230px">
                        </asp:DropDownList></td>
                </tr>
            </table>
            <div style="width:115px; float:right;">
                <div class="linkbutton-l"><asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update"
                Text="Update"></asp:LinkButton></div>
                <div class="linkbutton-r"> 
                <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
                Text="Cancel"></asp:LinkButton></div>
                    <div class="clear"></div>
                    </div>        
           
            
        </EditItemTemplate>

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of imstac73
imstac73

Link to home
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
See answer
Prior comments did not resolve the issue I was having.