javascript, asp.net

Question:
I would like to allow user to select time in and time out.
and calcaluate the min. and land the value to
ddlmeetingdurationmin?

Does anyone know how to put it code behind / javascript frontend...?

Thanks,
<asp:Label Width="150" ID="Label1" runat="server" Text="Time In:"></asp:Label><asp:DropDownList ID="ddlmeetingstarthour" runat="server">
    <asp:ListItem Value="01" Text="01"></asp:ListItem>
    <asp:ListItem Value="02" Text="02"></asp:ListItem>
    <asp:ListItem Value="03" Text="03"></asp:ListItem>
    <asp:ListItem Value="04" Text="04"></asp:ListItem>
    <asp:ListItem Value="05" Text="05"></asp:ListItem>
    <asp:ListItem Value="06" Text="06"></asp:ListItem>
    <asp:ListItem Value="07" Text="07"></asp:ListItem>
    <asp:ListItem Value="08" Text="08"></asp:ListItem>
    <asp:ListItem Value="09" Text="09"></asp:ListItem>
    <asp:ListItem Value="10" Text="10"></asp:ListItem>
    <asp:ListItem Value="11" Text="11"></asp:ListItem>
    <asp:ListItem Value="12" Text="12"></asp:ListItem>
    <asp:ListItem Value="13" Text="13"></asp:ListItem>
    <asp:ListItem Value="14" Text="14"></asp:ListItem>
    <asp:ListItem Value="15" Text="15"></asp:ListItem>
    <asp:ListItem Value="16" Text="16"></asp:ListItem>
    <asp:ListItem Value="17" Text="17"></asp:ListItem>
    <asp:ListItem Value="18" Text="18"></asp:ListItem>
    <asp:ListItem Value="19" Text="19"></asp:ListItem>
    <asp:ListItem Value="20" Text="20"></asp:ListItem>
    <asp:ListItem Value="20" Text="21"></asp:ListItem>
    <asp:ListItem Value="20" Text="22"></asp:ListItem>
    <asp:ListItem Value="20" Text="23"></asp:ListItem>
    <asp:ListItem Value="20" Text="24"></asp:ListItem>
    </asp:DropDownList>&nbsp;
    <asp:DropDownList ID="ddlmeetingstartminute" runat="server">
    <asp:ListItem Value="00" Text="00"></asp:ListItem>
    <asp:ListItem Value="15" Text="15"></asp:ListItem>
    <asp:ListItem Value="30" Text="30"></asp:ListItem>
    <asp:ListItem Value="45" Text="45"></asp:ListItem>
    </asp:DropDownList>&nbsp;
    <asp:DropDownList ID="ddlmeetingstarttimezone" runat="server">
    <asp:ListItem Value="EST" Text="EST"></asp:ListItem>
    <asp:ListItem Value="CST" Text="CST"></asp:ListItem>
    <asp:ListItem Value="PST" Text="PST"></asp:ListItem>

    </asp:DropDownList>&nbsp;<font color="red">*</font>
<br>
<asp:Label Width="150" ID="lbltimeout" runat="server" Text="Time Out:"></asp:Label><asp:DropDownList ID="ddlmeetingendhour" runat="server">
    <asp:ListItem Value="01" Text="01"></asp:ListItem>
    <asp:ListItem Value="02" Text="02"></asp:ListItem>
    <asp:ListItem Value="03" Text="03"></asp:ListItem>
    <asp:ListItem Value="04" Text="04"></asp:ListItem>
    <asp:ListItem Value="05" Text="05"></asp:ListItem>
    <asp:ListItem Value="06" Text="06"></asp:ListItem>
    <asp:ListItem Value="07" Text="07"></asp:ListItem>
    <asp:ListItem Value="08" Text="08"></asp:ListItem>
    <asp:ListItem Value="09" Text="09"></asp:ListItem>
    <asp:ListItem Value="10" Text="10"></asp:ListItem>
    <asp:ListItem Value="11" Text="11"></asp:ListItem>
    <asp:ListItem Value="12" Text="12"></asp:ListItem>
    <asp:ListItem Value="13" Text="13"></asp:ListItem>
    <asp:ListItem Value="14" Text="14"></asp:ListItem>
    <asp:ListItem Value="15" Text="15"></asp:ListItem>
    <asp:ListItem Value="16" Text="16"></asp:ListItem>
    <asp:ListItem Value="17" Text="17"></asp:ListItem>
    <asp:ListItem Value="18" Text="18"></asp:ListItem>
    <asp:ListItem Value="19" Text="19"></asp:ListItem>
    <asp:ListItem Value="20" Text="20"></asp:ListItem>
    <asp:ListItem Value="20" Text="21"></asp:ListItem>
    <asp:ListItem Value="20" Text="22"></asp:ListItem>
    <asp:ListItem Value="20" Text="23"></asp:ListItem>
    <asp:ListItem Value="20" Text="24"></asp:ListItem>
    </asp:DropDownList>&nbsp;
    <asp:DropDownList ID="ddlmeetingendminute" runat="server">
    <asp:ListItem Value="00" Text="00"></asp:ListItem>
    <asp:ListItem Value="15" Text="15"></asp:ListItem>
    <asp:ListItem Value="30" Text="30"></asp:ListItem>
    <asp:ListItem Value="45" Text="45"></asp:ListItem>
    </asp:DropDownList>&nbsp;
    <asp:DropDownList ID="ddlmeetingendtimezone" runat="server">
    <asp:ListItem Value="EST" Text="EST"></asp:ListItem>
    <asp:ListItem Value="CST" Text="CST"></asp:ListItem>
    <asp:ListItem Value="PST" Text="PST"></asp:ListItem></asp:DropDownList>&nbsp;<font color="red">*</font>
<br>
<asp:Label Width="150" ID="lblmeetingduration" runat="server" Text="Duration (HH/MM)"></asp:Label><asp:Textbox ID="ddlmeetingdurationmin" runat="server" />

Open in new window

Webboy2008Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Paul JacksonConnect With a Mentor Software EngineerCommented:
heres the javascript function, it still needs work and is a bit basic at the moment, e.g. timezone is ignored.
    <script type="text/javascript" >
    function calcDuration()
    {
        var starthour = document.getElementById("<%=ddlmeetingstarthour.ClientId %>");
        var startmin = document.getElementById("<%=ddlmeetingstartminute.ClientId %>");
        var starttz = document.getElementById("<%=ddlmeetingstarttimezone.ClientId %>");
        var endhour = document.getElementById("<%=ddlmeetingendhour.ClientId %>");
        var endmin = document.getElementById("<%=ddlmeetingendminute.ClientId %>");
        var endtz = document.getElementById("<%=ddlmeetingendtimezone.ClientId %>");
        var duration = document.getElementById("<%=txtmeetingdurationmin.ClientId %>");
        
        if ( starthour.selectedIndex != 0 &&
            startmin.selectedIndex != 0 &&
            starttz.selectedIndex != 0 &&
            endhour.selectedIndex != 0 &&
            endmin.selectedIndex != 0 &&
            endtz.selectedIndex != 0) {

            var hourmins = ((endhour.options[endhour.selectedIndex].value - starthour.options[starthour.selectedIndex].value) * 60);
            var mins = endmin.options[endmin.selectedIndex].value - startmin.options[startmin.selectedIndex].value;
            duration.value = hourmins + mins;
        }
    }
    </script>

Open in new window


For the aspx code I've added a static blank listitem for each dropdown, updated some of the values of the listitems as there were duplicates (20 was duplicated for listitems with text 21 - 23).
also changed the name of the duration textbox
aspx code:
    <asp:Label Width="150" ID="Label1" runat="server" Text="Time In:"></asp:Label>
    <asp:DropDownList ID="ddlmeetingstarthour" runat="server" > 
    <asp:ListItem Value="0" Text=""></asp:ListItem>
    <asp:ListItem Value="01" Text="01"></asp:ListItem> 
    <asp:ListItem Value="02" Text="02"></asp:ListItem> 
    <asp:ListItem Value="03" Text="03"></asp:ListItem> 
    <asp:ListItem Value="04" Text="04"></asp:ListItem> 
    <asp:ListItem Value="05" Text="05"></asp:ListItem> 
    <asp:ListItem Value="06" Text="06"></asp:ListItem> 
    <asp:ListItem Value="07" Text="07"></asp:ListItem> 
    <asp:ListItem Value="08" Text="08"></asp:ListItem> 
    <asp:ListItem Value="09" Text="09"></asp:ListItem> 
    <asp:ListItem Value="10" Text="10"></asp:ListItem> 
    <asp:ListItem Value="11" Text="11"></asp:ListItem> 
    <asp:ListItem Value="12" Text="12"></asp:ListItem> 
    <asp:ListItem Value="13" Text="13"></asp:ListItem> 
    <asp:ListItem Value="14" Text="14"></asp:ListItem> 
    <asp:ListItem Value="15" Text="15"></asp:ListItem> 
    <asp:ListItem Value="16" Text="16"></asp:ListItem> 
    <asp:ListItem Value="17" Text="17"></asp:ListItem> 
    <asp:ListItem Value="18" Text="18"></asp:ListItem> 
    <asp:ListItem Value="19" Text="19"></asp:ListItem> 
    <asp:ListItem Value="20" Text="20"></asp:ListItem> 
    <asp:ListItem Value="21" Text="21"></asp:ListItem> 
    <asp:ListItem Value="22" Text="22"></asp:ListItem> 
    <asp:ListItem Value="23" Text="23"></asp:ListItem> 
    <asp:ListItem Value="24" Text="24"></asp:ListItem> 
    </asp:DropDownList>&nbsp; 
    <asp:DropDownList ID="ddlmeetingstartminute" runat="server" > 
    <asp:ListItem Value="0" Text=""></asp:ListItem>
    <asp:ListItem Value="00" Text="00"></asp:ListItem> 
    <asp:ListItem Value="15" Text="15"></asp:ListItem> 
    <asp:ListItem Value="30" Text="30"></asp:ListItem> 
    <asp:ListItem Value="45" Text="45"></asp:ListItem> 
    </asp:DropDownList>&nbsp; 
    <asp:DropDownList ID="ddlmeetingstarttimezone" runat="server" > 
    <asp:ListItem Value="0" Text=""></asp:ListItem>
    <asp:ListItem Value="EST" Text="EST"></asp:ListItem> 
    <asp:ListItem Value="CST" Text="CST"></asp:ListItem> 
    <asp:ListItem Value="PST" Text="PST"></asp:ListItem> 
 
    </asp:DropDownList>&nbsp;<font color="red">*</font> 
<br> 
<asp:Label Width="150" ID="lbltimeout" runat="server" Text="Time Out:"></asp:Label>
<asp:DropDownList ID="ddlmeetingendhour" runat="server" > 
    <asp:ListItem Value="0" Text=""></asp:ListItem>
    <asp:ListItem Value="01" Text="01"></asp:ListItem> 
    <asp:ListItem Value="02" Text="02"></asp:ListItem> 
    <asp:ListItem Value="03" Text="03"></asp:ListItem> 
    <asp:ListItem Value="04" Text="04"></asp:ListItem> 
    <asp:ListItem Value="05" Text="05"></asp:ListItem> 
    <asp:ListItem Value="06" Text="06"></asp:ListItem> 
    <asp:ListItem Value="07" Text="07"></asp:ListItem> 
    <asp:ListItem Value="08" Text="08"></asp:ListItem> 
    <asp:ListItem Value="09" Text="09"></asp:ListItem> 
    <asp:ListItem Value="10" Text="10"></asp:ListItem> 
    <asp:ListItem Value="11" Text="11"></asp:ListItem> 
    <asp:ListItem Value="12" Text="12"></asp:ListItem> 
    <asp:ListItem Value="13" Text="13"></asp:ListItem> 
    <asp:ListItem Value="14" Text="14"></asp:ListItem> 
    <asp:ListItem Value="15" Text="15"></asp:ListItem> 
    <asp:ListItem Value="16" Text="16"></asp:ListItem> 
    <asp:ListItem Value="17" Text="17"></asp:ListItem> 
    <asp:ListItem Value="18" Text="18"></asp:ListItem> 
    <asp:ListItem Value="19" Text="19"></asp:ListItem> 
    <asp:ListItem Value="20" Text="20"></asp:ListItem> 
    <asp:ListItem Value="21" Text="21"></asp:ListItem> 
    <asp:ListItem Value="22" Text="22"></asp:ListItem> 
    <asp:ListItem Value="23" Text="23"></asp:ListItem> 
    <asp:ListItem Value="24" Text="24"></asp:ListItem> 
    </asp:DropDownList>&nbsp; 
    <asp:DropDownList ID="ddlmeetingendminute" runat="server" > 
    <asp:ListItem Value="0" Text=""></asp:ListItem>
    <asp:ListItem Value="00" Text="00"></asp:ListItem> 
    <asp:ListItem Value="15" Text="15"></asp:ListItem> 
    <asp:ListItem Value="30" Text="30"></asp:ListItem> 
    <asp:ListItem Value="45" Text="45"></asp:ListItem> 
    </asp:DropDownList>&nbsp; 
    <asp:DropDownList ID="ddlmeetingendtimezone" runat="server" > 
    <asp:ListItem Value="" Text=""></asp:ListItem>
    <asp:ListItem Value="EST" Text="EST"></asp:ListItem> 
    <asp:ListItem Value="CST" Text="CST"></asp:ListItem> 
    <asp:ListItem Value="PST" Text="PST"></asp:ListItem></asp:DropDownList>&nbsp;<font color="red">*</font> 
<br> 
<asp:Label Width="150" ID="lblmeetingduration" runat="server" Text="Duration (HH/MM)"></asp:Label><asp:Textbox ID="txtmeetingdurationmin" runat="server" />

Open in new window


code-behind, that needs to be put in your page load
vb.net:
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ddlmeetingendhour.Attributes.Add("onChange", "javascript:calcDuration();")
        ddlmeetingendminute.Attributes.Add("onChange", "javascript:calcDuration();")
        ddlmeetingendtimezone.Attributes.Add("onChange", "javascript:calcDuration();")
        ddlmeetingstarthour.Attributes.Add("onChange", "javascript:calcDuration();")
        ddlmeetingstartminute.Attributes.Add("onChange", "javascript:calcDuration();")
        ddlmeetingstarttimezone.Attributes.Add("onChange", "javascript:calcDuration();")
    End Sub

Open in new window


c#:
protected void Page_Load(object sender, System.EventArgs e)
{
	ddlmeetingendhour.Attributes.Add("onChange", "javascript:calcDuration();");
	ddlmeetingendminute.Attributes.Add("onChange", "javascript:calcDuration();");
	ddlmeetingendtimezone.Attributes.Add("onChange", "javascript:calcDuration();");
	ddlmeetingstarthour.Attributes.Add("onChange", "javascript:calcDuration();");
	ddlmeetingstartminute.Attributes.Add("onChange", "javascript:calcDuration();");
	ddlmeetingstarttimezone.Attributes.Add("onChange", "javascript:calcDuration();");
}

Open in new window

0
 
Todd GerbertIT ConsultantCommented:
Seems like you have this question open twice...?  Anyway, I made a comment in your other question, http:Q_26888706.html#a35143877 with a server-side solution:


This example uses two text boxes for the times; the CustomValidator's function attempts to parse the text into a DateTime, requiring the text fits the format H:mm - where "H" is a 1 or 2 digit hour between 0 and 23, and "mm" is a 2 digit minute between 00 and 59.

The button's click event handler first checks if the controls on the page passed validation by checking Page.IsValid, and then parses the text of each text box into a DateTime. Subtracting one DateTime object from another gets you a TimeSpan object, and the TotalMinutes property tells you the length of the TimeSpan object in minutes.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>

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

<script runat="server">
	private void calculateDurationButton_Click(object sender, EventArgs e)
	{
		if (Page.IsValid)
		{
			DateTime timeIn = DateTime.Parse(timeInTextBox.Text);
			DateTime timeOut = DateTime.Parse(timeOutTextBox.Text);

			if (timeIn > timeOut)
			{
				timeOutBeforeTimeIn.Visible = true;
				return;
			}
				
			TimeSpan duration = timeOut - timeIn;

			durationLabel.Text = duration.TotalMinutes + " minutes.";
			timeOutBeforeTimeIn.Visible = false;
		}
	}

	protected void timeValidator_ServerValidate(object source, ServerValidateEventArgs args)
	{
		DateTime time;
		args.IsValid = DateTime.TryParseExact(args.Value, "H:mm", null, System.Globalization.DateTimeStyles.None, out time);
	}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
		Time in: <asp:TextBox ID="timeInTextBox" runat="server" />
		<asp:CustomValidator ID="timeInValidator" runat="server"
			ControlToValidate="timeInTextBox" ErrorMessage="Invalid Time In" 
			OnServerValidate="timeValidator_ServerValidate" ForeColor="Red" />
		<br />
		Time out: <asp:TextBox ID="timeOutTextBox" runat="server" />
		<asp:CustomValidator ID="timeOutValidator" runat="server"
			ControlToValidate="timeOutTextBox" ErrorMessage="Invalid Time Out"
			OnServerValidate="timeValidator_ServerValidate" ForeColor="Red" />
		<asp:Label ID="timeOutBeforeTimeIn" runat="server"
			ForeColor="Red" Visible="false" Text="Time IN must be less than time OUT." />
		<hr />
		Duration: <asp:Label ID="durationLabel" runat="server" /><br />
		<asp:Button ID="calculateDurationButton" runat="server" Text="Calc Duration"
			OnClick="calculateDurationButton_Click" />
    </div>
    </form>
</body>
</html>

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.