[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 677
  • Last Modified:

ASP.NET 3.5 Validation not working.

On this "Purchase Requisition" form I've got a ValidationSummary control and a couple of RequiredFieldValidator controls, one on a TextBox and one on a RadioButtonList.  When I click the Submit button with all the fields blank, the form submits without the Validation controls firing.  The "btnSubmit.Attributes.Add("onclick", "doPrint()")" does make the print dialog pop up as intended and I'm not sure if this is causing a problem with Validation.  I can't think of what else may be the problem.  Here is my Page_Load event and below is the entire .aspx page.  I hope someone can help.  Thanks.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        'This adds the overflow attribute to the TextBox so the vertical scroll bars can be removed.
        txtRemarks.Attributes.Add("style", "overflow :hidden")
        txtReasonForRequest.Attributes.Add("style", "overflow :hidden")
        txtReasonForModification.Attributes.Add("style", "overflow :hidden")

        '' On Page Load pull the Top Purchase Req Number and increment it by one.  ReqNumber += 1
        If Not IsPostBack Then
            Call GetLastRequisitionNumber()
            lblPurchaseRequisitionNumber.Text = TopReqID + 1
        End If

        btnSubmit.Attributes.Add("onclick", "doPrint()")
        iUserName = Right(Request.ServerVariables("AUTH_USER"), (Request.ServerVariables("AUTH_USER").Length - 5))  'Remove the five characters: "DOMA\"
        lblUserName.Text = iUserName
        lblCreatedBy.Text = "Created by: " & iUserName
End Sub
<%@ Page Language="VB" Debug="true" AutoEventWireup="false" CodeFile="default.aspx.vb" Inherits="PurchaseRequisition" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Purchase Requisition</title>

    <script type="text/javascript">
      function pageLoad() {
      }
    </script>

<%--Start jQuery scripts to Auto-Grow any Multi-Line TextBox on the page.--%>
<script src="js/jquery-1.4.2.js" type="text/javascript" ></script>
<script src='js/jquery.autogrow-textarea.js' type='text/javascript' ></script>
<script type='text/javascript'>
	$(function() {
		$('textarea').autogrow();
	});
</script>	
<%--End jQuery scripts to Auto-Grow any Multi-Line TextBox on the page.--%>
    

	<script type="text/javascript">
		// Fix the rounding error
		// Round() will give you back a number, accurate to the number of decimal places you specify, 
		// and RoundFixed() returns a string fixed to the required number of decimal places, 
		// e.g. useful when dealing with currency, £1.2 is accurate but better represented as £1.20.
		function Round(Number, DecimalPlaces) {
			return Math.round(parseFloat(Number) * Math.pow(10, DecimalPlaces)) / Math.pow(10, DecimalPlaces);
		}

		function RoundFixed(Number, DecimalPlaces) {
			return Round(Number, DecimalPlaces).toFixed(DecimalPlaces);
		}
	// Maybe this will add the decimal ?  There was a calculation error where 3 * 2.55 = 7.64 instead of 7.65 so I'm using RoundFixed instead.
	/*	function dp(price) {
			string = "" + price;
			number = string.length - string.indexOf('.');
			if (string.indexOf('.') == -1)
				return string + '.00';
			if (number == 1)
				return string + '00';
			if (number == 2)
				return string + '0';
			if (number > 3)
				return string.substring(0, string.length - number + 3);
			return string;
		}*/

		// Using .toFixed(2)  Check accuracy and maybe use .toPrecision(4) or something to correct.  Experiment with values in ()
		// Using .toFixed(2)  Check accuracy and maybe use .toPrecision(4) or something to correct.  Experiment with values in ()
		// Start Original Function
		// Use onkeyup="CalculateTotal_1(this), CalculateTOTAL(this)" 
		/*
		function CalculateTotal_1() {
		var ret1 = RoundFixed(parseInt(document.getElementById('txtQTY_1').value)
		* parseFloat(document.getElementById('txtUNIT_1').value), 2);
		document.getElementById('txtTotal_1').value = ret1;
		}
		function CalculateTotal_2() {
		var ret2 = RoundFixed(parseInt(document.getElementById('txtQTY_2').value)
		* parseFloat(document.getElementById('txtUNIT_2').value), 2);
		document.getElementById('txtTotal_2').value = ret2;
		}
		function CalculateTotal_3() {
		var ret3 = RoundFixed(parseInt(document.getElementById('txtQTY_3').value)
		* parseFloat(document.getElementById('txtUNIT_3').value), 2);
		document.getElementById('txtTotal_3').value = ret3;
		}
		function CalculateTOTAL() {
		document.getElementById('txtTOTAL').value = RoundFixed
		(
		parseFloat(document.getElementById('txtTotal_1').value)
		+ parseFloat(document.getElementById('txtTotal_2').value)
		+ parseFloat(document.getElementById('txtTotal_3').value), 2
		);
		}
		*/
		// End Original Function

		// Start Function from leakim971 on EE - http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_26500533.html#a33765347
		// Use onkeyup="doCalc(this)"
		/*
		function doCalc() {
		var total1 = document.getElementById("txtQTY_1").value * document.getElementById("txtUNIT_1").value;
		var total2 = document.getElementById("txtQTY_2").value * document.getElementById("txtUNIT_2").value;
		var total3 = document.getElementById("txtQTY_3").value * document.getElementById("txtUNIT_3").value;

		    total1 = (isNaN(total1) ? 0 : total1).toFixed(2);
		total2 = (isNaN(total2) ? 0 : total2).toFixed(2);
		total3 = (isNaN(total3) ? 0 : total3).toFixed(2);

		    document.getElementById("txtTotal_1").value = total1;
		document.getElementById("txtTotal_2").value = total2;
		document.getElementById("txtTotal_3").value = total3;

		    document.getElementById("txtTOTAL").value = (parseFloat(total1) + parseFloat(total2) + parseFloat(total3)).toFixed(2);
		}
		*/
		// End Function from leakim971 on EE - http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_26500533.html#a33765347

		// Start Function from mplungjan - http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_26500533.html#a33765347
		// Use onkeyup="CalculateTOTAL()" 

		function getInt(str) {
			if (isNaN(str) || str == "") return 0;
			else return parseInt(str, 10)
		}
		function getFloat(str) {
			if (isNaN(str) || str == "") return 0;
			else return parseFloat(str)
		}

		function CalculateTotals(num) {
			var price = getFloat(document.getElementById('txtQTY_' + num).value) * getFloat(document.getElementById('txtUNIT_' + num).value);
			document.getElementById('txtTotal_' + num).value = price.toFixed(2);
			return price;
		}
		function CalculateTOTAL() {
			var total = 0;
			for (var i = 1; i <= 10; i++) {
				total += CalculateTotals(i);
			}
			document.getElementById('txtTOTAL').value = total.toFixed(2);
		}
/*  The function above is a little nicer.  Just change the number in " i <= 10 " to the number of rows on the Requisition form.
		function CalculateTOTAL() {
			var total = CalculateTotals(1) + CalculateTotals(2) + CalculateTotals(3) + CalculateTotals(4) + CalculateTotals(5) + CalculateTotals(6);
			document.getElementById('txtTOTAL').value = total.toFixed(2);
		}
*/
		// End Function from mplungjan
	</script>    
    
<link rel="Stylesheet" type="text/css" media="screen" href="css/PurchaseReqScreen.css" />
<link rel="Stylesheet" type="text/css" media="print" href="css/PurchaseReqPrint.css" />
<!--[if lte IE 7]>     
<style type="text/css" media="all">     
@import "css/fieldset-styling-ie.css"; 
legend {     
position: relative;     
left: -7px;     
top: -0.75em;    
}    
fieldset ol {     
padding-top: 0.25em;    
}
</style>    
<![endif]-->

<style type="text/css">
.if5_400
{
	overflow:visible; 
/*	overflow-y:visible; */
/*	font-family:tahoma; */
/*	font-size:12px; */
/*	font-weight:bold; */
	border:0px;
	background-image:url(images/tabck1.gif);
	line-height:18px;
	width:400; 
	text-decoration:underline;}

table
{
	border-collapse:collapse;
	border-color:#EEEEEE;
	margin-left:auto;
	margin-right:auto;
	/* width:95%; */
	font-family: Arial;
	font-size:small;
}
td
{
	border-color:#EEEEEE;
	}
th
{
	border-color:#EEEEEE;
	}
.divider
{
	line-height: 5px;
	background-color:#AAAAAA;
	}
/* style Name label and textbox... 
label
{
width: 4em;
float: left;
text-align: right;
margin-right: 0.5em;
display: block
}
.submit input
{
margin-left: 4.5em;
} 
*/

/* http://articles.sitepoint.com/article/fancy-form-design-css/3 */
/* Test Area Styling */
/*
fieldset {   
margin: 1.5em 0 0 0;   
padding: 0;  
}  
legend {   
margin-left: 1em;   
color: #000000;   
font-weight: bold;  
}  
fieldset ol {   
padding: 1em 1em 0 1em;   
list-style: none;  
}  
fieldset li {   
padding-bottom: 1em;  
}  
fieldset.submit {   
border-style: none;  
}
*/
/* Make labels into block elements thus making them occupy the entire line putting them on top of the input elements */
/*
label {    
display: block;   
}
*/

/* Start Left-aligning Text Labels  Make labels left aligned */
label_XXX_01 {    
float: left;    
width: 10em;    
margin-right: 1em;   
}

fieldset li {    
float: left;    
/*clear: left;    */
width: 100%;    
padding-bottom: 1em;   
}
fieldset {    
float: left;    
clear: left;    
width: 100%;    
margin: 0 0 1.5em 0;    
padding: 0;   
}
fieldset.submit {    
float: none;    
width: auto;    
border: 0 none #FFF;    
padding-left: 12em;   
}
/* End Left-aligning Text Labels */

/* Start Right-aligning Text Labels (The only difference is the addition of the text-align: right; to the label) */
label_XXX_02 {    
float: left;    
width: 10em;    
margin-right: 1em;    
text-align: right;   
}
/* End Right-aligning Text Labels */
.TextBoxPadLeft
{
 margin-left:0px;
	}
	.style1
	{
		color: #006600;
	}
	.style2
	{
		color: maroon;
	}
#lbAdmin 
{
 float:right;
 margin-right:2em;
}
.DontShow
{
	display:none;
	}	
</style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
    </div>
    <div id="Header">
		<span class="left">
			<img alt="WorkForce One Logo Image" src="images/wf1_Logo_200x67.gif" style="width: 200px; height: 67px"  /> 
		</span>
				<h1 class="middle" style="position:relative; left:-100px;">PURCHASE REQUISITION</h1>
		<span class="right" style="font-family:Arial; font-size:x-large; margin-right:50px;">
		
			<asp:Label ID="lblUserName" runat="server" Text="" ForeColor="#CCCC77" Font-Size="Small" CssClass="DontPrint"></asp:Label>
			<asp:Label ID="lblPurchaseRequisitionNumber" runat="server" Text="REQ #"></asp:Label>
			<asp:Label ID="lblSubmitted" runat="server" Text="" ForeColor="#00CC00" CssClass="DontPrint"></asp:Label>
		</span>        
    </div>
	<div style="margin-left:auto; margin-right:auto; width:600px;">
		<asp:ValidationSummary ID="ValidationSummary1" runat="server" ValidationGroup="ValGroup1" />
	</div>
    <div style="clear:both;" id="Body">
		<div style="text-align:center;">
			Date Issued: <asp:TextBox ID="txtDateIssued" runat="server" Width="75px" CssClass="UnderlineText" 
				TabIndex="1" />
			<cc1:CalendarExtender ID="txtDateIssued_CalendarExtender" runat="server" Enabled="True" 
				TargetControlID="txtDateIssued">
			</cc1:CalendarExtender>
			<script type="text/javascript">
				function pageLoad(sendor,e)
				{
					var calendarBehavior = $find("txtDateIssued_CalendarExtender");
					var calendarBehavior2 = $find("txtDateOfPO_CalendarExtender");
					calendarBehavior.set_selectedDate('<%=DateTime.Now.ToString() %>');
					calendarBehavior2.set_selectedDate('<%=DateTime.Now.ToString() %>');
				}
			</script>
			<span style="margin-left:20px;" />
			Deliver To: (Dept. & Location): <asp:TextBox ID="txtDeliverTo" runat="server" CssClass="if5_400" 
				TabIndex="5" />
			<asp:RequiredFieldValidator ID="reqDeliverTo" runat="server" ControlToValidate="txtDeliverTo" 
				ErrorMessage="Deliver To is a required field" ValidationGroup="ValGroup1">*</asp:RequiredFieldValidator>
		</div>
		<br />
    <table border="1" class="alternate">
		<thead>
			<tr>
				<th>ITEM #</th>
				<th>QTY</th>
				<th>COMPLETE DESCRIPTION FOR ORDERING</th>
				<th>UNIT $</th>
				<th>TOTAL $</th>
			</tr>
		</thead>
		<tr>
			<td style="text-align:center; white-space:nowrap; ">1</td>
			<td style="text-align:center; "><asp:TextBox ID="txtQTY_1" runat="server" Width="40px" 
					onkeyup="CalculateTOTAL()" TabIndex="10" /></td>
			<td style="text-align:center; "><asp:TextBox ID="txtDescription_1" runat="server" Width="610px" 
					TabIndex="11" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtUNIT_1" runat="server" Width="60px" 
					onkeyup="CalculateTOTAL()" TabIndex="12" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtTotal_1" runat="server" Width="60px" 
					TabIndex="-1" /></td>
		</tr>
		<tr>
			<td style="text-align:center; ">2</td>
			<td style="text-align:center; "><asp:TextBox ID="txtQTY_2" runat="server" Width="40px" 
					onkeyup="CalculateTOTAL()" TabIndex="20" /></td>
			<td style="text-align:center; "><asp:TextBox ID="txtDescription_2" runat="server" Width="610px" 
					TabIndex="21" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtUNIT_2" runat="server" Width="60px" 
					onkeyup="CalculateTOTAL()" TabIndex="22" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtTotal_2" runat="server" Width="60px" /></td>
		</tr>
		<tr>
			<td style="text-align:center; ">3</td>
			<td style="text-align:center; "><asp:TextBox ID="txtQTY_3" runat="server" Width="40px" 
					onkeyup="CalculateTOTAL()" TabIndex="30" /></td>
			<td style="text-align:center; "><asp:TextBox ID="txtDescription_3" runat="server" Width="610px" TabIndex="31" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtUNIT_3" runat="server" Width="60px" onkeyup="CalculateTOTAL()" TabIndex="32" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtTotal_3" runat="server" Width="60px" /></td>
		</tr>
		<tr>
			<td style="text-align:center; white-space:nowrap; ">4</td>
			<td style="text-align:center; "><asp:TextBox ID="txtQTY_4" runat="server" Width="40px" onkeyup="CalculateTOTAL()" TabIndex="40" /></td>
			<td style="text-align:center; "><asp:TextBox ID="txtDescription_4" runat="server" Width="610px" TabIndex="41" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtUNIT_4" runat="server" Width="60px" onkeyup="CalculateTOTAL()" TabIndex="42" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtTotal_4" runat="server" Width="60px" /></td>
		</tr>
		<tr>
			<td style="text-align:center; ">5</td>
			<td style="text-align:center; "><asp:TextBox ID="txtQTY_5" runat="server" Width="40px" onkeyup="CalculateTOTAL()" TabIndex="50" /></td>
			<td style="text-align:center; "><asp:TextBox ID="txtDescription_5" runat="server" Width="610px" TabIndex="51" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtUNIT_5" runat="server" Width="60px" onkeyup="CalculateTOTAL()" TabIndex="52" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtTotal_5" runat="server" Width="60px" /></td>
		</tr>
		<tr>
			<td style="text-align:center; ">6</td>
			<td style="text-align:center; "><asp:TextBox ID="txtQTY_6" runat="server" Width="40px" onkeyup="CalculateTOTAL()" TabIndex="60" /></td>
			<td style="text-align:center; "><asp:TextBox ID="txtDescription_6" runat="server" Width="610px" TabIndex="61" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtUNIT_6" runat="server" Width="60px" onkeyup="CalculateTOTAL()" TabIndex="62" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtTotal_6" runat="server" Width="60px" /></td>
		</tr>
		<tr>
			<td style="text-align:center; white-space:nowrap; ">7</td>
			<td style="text-align:center; "><asp:TextBox ID="txtQTY_7" runat="server" Width="40px" onkeyup="CalculateTOTAL()" TabIndex="70" /></td>
			<td style="text-align:center; "><asp:TextBox ID="txtDescription_7" runat="server" Width="610px" TabIndex="71" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtUNIT_7" runat="server" Width="60px" onkeyup="CalculateTOTAL()" TabIndex="72" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtTotal_7" runat="server" Width="60px" /></td>
		</tr>
		<tr>
			<td style="text-align:center; ">8</td>
			<td style="text-align:center; "><asp:TextBox ID="txtQTY_8" runat="server" Width="40px" onkeyup="CalculateTOTAL()" TabIndex="80" /></td>
			<td style="text-align:center; "><asp:TextBox ID="txtDescription_8" runat="server" Width="610px" TabIndex="81" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtUNIT_8" runat="server" Width="60px" onkeyup="CalculateTOTAL()" TabIndex="82" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtTotal_8" runat="server" Width="60px" /></td>
		</tr>
		<tr>
			<td style="text-align:center; ">9</td>
			<td style="text-align:center; "><asp:TextBox ID="txtQTY_9" runat="server" Width="40px" onkeyup="CalculateTOTAL()" TabIndex="90" /></td>
			<td style="text-align:center; "><asp:TextBox ID="txtDescription_9" runat="server" Width="610px" TabIndex="91" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtUNIT_9" runat="server" Width="60px" onkeyup="CalculateTOTAL()" TabIndex="92" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtTotal_9" runat="server" Width="60px" /></td>
		</tr>
		<tr>
			<td style="text-align:center; ">10</td>
			<td style="text-align:center; "><asp:TextBox ID="txtQTY_10" runat="server" Width="40px" onkeyup="CalculateTOTAL()" TabIndex="100" /></td>
			<td style="text-align:center; "><asp:TextBox ID="txtDescription_10" runat="server" Width="610px" TabIndex="101" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtUNIT_10" runat="server" Width="60px" onkeyup="CalculateTOTAL()" TabIndex="102" /></td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtTotal_10" runat="server" Width="60px" /></td>
		</tr>
		<tr>
			<td colspan="3" style="text-align:left; ">&nbsp;
			</td>
			<td style="text-align:right; ">TOTAL</td>
			<td style="text-align:center; ">$<asp:TextBox ID="txtTOTAL" runat="server" Width="60px" /></td>
		</tr>
		<tr>
			<td colspan="5" height="60px" valign="bottom">
			&nbsp;&nbsp;Vice President Signature/Date:___________________________________&nbsp;&nbsp; Executive Signature/Date:___________________________________  <br />
			<span style="color:#999999; font-size:x-small; float:right; margin-right:7em; ">Purchases over $5,000.00 require Executive Signature.</span>
			</td>
		</tr>
		<tr>
			<td colspan="5" style="text-align:left; vertical-align:top;" valign="top"><br />
							<label for="txtReasonForRequest" style="vertical-align:top;">&nbsp;&nbsp;Reason For Request: </label><br />
							<asp:TextBox ID="txtReasonForRequest" runat="server" TextMode="MultiLine" Width="842px" 
								CssClass="TextBoxPadLeft" TabIndex="200" />
			</td>
		</tr>
    </table>
<br />
<br />

<table border="1" class="alternate">
			<tr>
				<th>DATE</th>
				<th>VENDOR/ADDRESS/ID#</th>
				<th>P.O. NO.</th>
				<th>FUNDING CODE INFO</th>
			</tr>
		<tr>
			<td><asp:TextBox ID="txtDateOfPO" runat="server" Width="75px" CssClass="TextBoxPadLeft" TabIndex="210" />
				<cc1:CalendarExtender ID="txtDateOfPO_CalendarExtender" runat="server" Enabled="True" 
					TargetControlID="txtDateOfPO">
				</cc1:CalendarExtender>
			</td>
			<td><asp:TextBox ID="txtVendorID" runat="server" Width="478px" TabIndex="220" /></td>
			<td><asp:TextBox ID="txtPONO" runat="server" Width="100px" TabIndex="230" /></td>
			<td><asp:TextBox ID="txtFundingCodeInfo" runat="server" Width="180px" TabIndex="240" /></td>
		</tr>
		<tr>
			<td colspan="4"><br />
			<label for="txtRemarks">&nbsp;&nbsp;Remarks:<br />
				</label>
				<asp:TextBox ID="txtRemarks" runat="server" Width="842px" 
					TextMode="MultiLine" CssClass="TextBoxPadLeft" TabIndex="300" /></td>
		</tr>
		<tr>
			<td colspan="4" height="40px" valign="bottom" style=" border-bottom-style:none;">
				&nbsp;&nbsp;Is the purchase off a State Contract? 
				<asp:RadioButtonList ID="radStateContract" runat="server" AutoPostBack="True" 
					RepeatDirection="Horizontal" RepeatLayout="Flow" TabIndex="400">
					<asp:ListItem>Yes</asp:ListItem>
					<asp:ListItem>No</asp:ListItem>
				</asp:RadioButtonList>
				<asp:RequiredFieldValidator ID="reqStateContract" runat="server" 
					ControlToValidate="radStateContract" 
					ErrorMessage="Is the purchase off a State Contract is a required field" SetFocusOnError="True" 
					ValidationGroup="ValGroup1">*</asp:RequiredFieldValidator>
			</td>
		</tr>
		<tr>
			<td colspan="4"height="40px" valign="bottom" style=" border-top-style:none;">
				<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
				<Triggers>
					<asp:AsyncPostBackTrigger ControlID="radStateContract"/>
				</Triggers>
					<ContentTemplate>
				<asp:label ID="lblStateContractNo" runat="server" Text="&nbsp;&nbsp;State Contract Number: " 
					Visible="False" /><asp:TextBox ID="txtStateContractNo" runat="server" Visible="False" TabIndex="500" />
					<span style="margin-left: 2em;" />
				<asp:label ID="lblContractEndDate" runat="server" Text="State Contract End Date: " Visible="False" />
						<asp:TextBox ID="txtStateContractEndDate" runat="server" Width="70px" Visible="False" 
							TabIndex="600" />
						<cc1:CalendarExtender ID="txtStateContractEndDate_CalendarExtender" runat="server" Enabled="True" 
							SelectedDate="1900-01-01" TargetControlID="txtStateContractEndDate">
						</cc1:CalendarExtender>
					</ContentTemplate>
				</asp:UpdatePanel>

			</td>
		</tr>
		<tr class="DontPrint">
			<td colspan="4" style="text-align:center;" height="80px">
				<asp:Button ID="btnSubmit" runat="server" Text="Submit and Print" onclientclick="printme()" 
					TabIndex="700" ValidationGroup="ValGroup1" />
					<span style="margin-left: 8em;" />
				<asp:Button ID="btnCancel" runat="server" Text="Cancel" onclientclick="window.close()" 
					TabIndex="800" />
				<asp:TextBox ID="isPrint" runat="server" Width="24px" CssClass="DontShow" ></asp:TextBox>
				<asp:LinkButton ID="lbAdmin" runat="server" CssClass="DontPrint" 
					PostBackUrl="~/PurchaseReqAdmin.aspx">Admin</asp:LinkButton>
			</td>
		</tr>
		<tr style="display:none;">
			<td colspan="5" style="text-align:left; vertical-align:top;" valign="top">
							<label for="txtReasonForModification" style="vertical-align:top; font-style:italic; ">&nbsp;&nbsp;Reason For Modification: </label><br />
							<asp:TextBox ID="txtReasonForModification" runat="server" TextMode="MultiLine" Width="842px" 
								CssClass="TextBoxPadLeft" TabIndex="0" />
			</td>
		</tr>
		<tr>
			<td colspan="4" style=" color:Navy; font-size:small; font-style:italic;">
				<label style="text-decoration:underline;">To be attached to Purchase Requisition: </label><br />
				 <span class="style1">$0.00 - $5,000.00: One written and one verbal quote;</span>
				 $5,000.00 - $15,000.00:  Two written quotes;
				 <span class="style2">$$15,001 - $25,000.00:  Three written quotes. </span>
			</td>
		</tr>
</table>
    </div>
    <div style="margin-left:800px;">
		<asp:Label ID="lblCreatedBy" runat="server" Text="___"></asp:Label>
	</div>
<%--	<div style="margin-left:200px;">
		<asp:Label ID="Label1" runat="server" Text="1"></asp:Label><br />
		<asp:Label ID="Label2" runat="server" Text="2"></asp:Label><br />
		<asp:Label ID="Label3" runat="server" Text="3"></asp:Label><br />
		<asp:Label ID="Label4" runat="server" Text="4"></asp:Label><br />
		<asp:Label ID="Label5" runat="server" Text="5"></asp:Label><br /><br />
	</div>--%>
            <div style="text-align: center; margin-top:70px; font-size:small; color:#CCCCCC;" 
		class="DontPrint">
                Copyright &copy; 2010 WorkForce One Employment Solutions
            </div>

            	
<script type="text/javascript">
	function printme() {
		window.print();
	}
	if (document.getElementById("isPrint").value == 1) print()
    </script>
 


  </form>
</body>
</html>

Open in new window

0
megnin
Asked:
megnin
  • 5
  • 3
1 Solution
 
Nash2334Commented:
Need to return from your JS function:

btnSubmit.Attributes.Add("onclick", "return doPrint()");
0
 
megninAuthor Commented:
Oh, bless you. ;-)  I hope it's that simple.  I'll give it a try...
0
 
megninAuthor Commented:
No joy.  :-(  Still no validation firing.

Should I or should I not put anyting in the "ValidationGroup" field of the properties of all the controls.  I think I started without it and when the validation didn't work I added a group name, "ValGroup1", to all of them.  No change.
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
Nash2334Commented:
Make sure the JS function is returning a value at the end as well, e.g. "return true;" at the end of the doPrint() function.
0
 
megninAuthor Commented:
Okay, I'm not quite sure how this happened, but here's what I found...

This is my "Submit and Print" button:
<asp:Button ID="btnSubmit" runat="server" Text="Submit and Print" onclientclick="printme()"  />

Note the "onclientclick="printme()"

Here's the JavaScript:
<script type="text/javascript">
      function printme() {
            window.print();
      }
      if (document.getElementById("isPrint").value == 1) print()
</script>


Okay, nothing wrong so far (I think).

Then... in my Page_Load I had this:
 btnSubmit.Attributes.Add("onclick", "return doPrint()")

I don't have a doPrint() script anywhere!  
I commented that out and the Validation started firing.  Go figure.
0
 
Nash2334Commented:
Looks like you were adding a JS script to fire two ways, one using the "onclientclick" attribute and the other in your codebehind using "Attributes.Add".  If there was never a "doPrint" JS function, there would be a JS error at click, which probably prevented the validators from firing.
0
 
megninAuthor Commented:
Yeah, I was probably experimenting with different methods of making the submit button also launch the Print dialog box at the same time, that I found "Googling around", and that got left over.  ;-)

Thank you for the help.  I don't think I would have found it if you hadn't pointed me in the right direction.  :-)
0
 
megninAuthor Commented:
Thanks a bunch!
0

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

  • 5
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now