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
This would be the label on input
<FORM...
<asp:Label ID="lblMessage" runat="server" Text="Result:" Visible="false"></asp:Labe l>
</FORM>
Sorry I forgot it
<FORM...
<asp:Label ID="lblMessage" runat="server" Text="Result:" Visible="false"></asp:Labe
</FORM>
Sorry I forgot it
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") %>' />
<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>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Prior comments did not resolve the issue I was having.
fvProjects2.UpdateItem(Tru
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.