I have a web app running on the windows CE device. In one of the asp.net
pages - it has javascript code. That seems to have a memory leak.
When I run the web app - in about one hour, the app hangs. I looked at the
memory and it seems to be full.
I removed all the javascript code - and the app seems to be have no leaks.
As soon as I include my javascript code - the memory consumption gradually
increases.
Whether I actually invoke the javascript code or not - it doesn't matter.
The memory leak happens.
I have been looking at some of the discussions around memory leak and they
talk about circular references and closures.
Well, I dont think I have that issue.
What else can be the problem?
Here is the page that has the problem:
<%@ Master Language="C#" AutoEventWireup ="true" Inherits="MyMob ile"
CodeBehind="MyM obile.master.cs " %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt d">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitl ed Page</title>
<meta http-equiv="ScannerN avigate"
content="Javasc ript:onscan('%s ','%s','%s','%s ','%s');" />
</head>
<body onload="OnLoad( )" onbeforeunload= "showProgress() ;"
onunload="sip_h ide();" onkeydown="canc elBack();">
<% if (this.DisplayPr ogress && this.DisplayTim er)
{ %>
<script language="javas cript" type="text/javascript" src="<%=
Page.ResolveUrl ("~/Scripts/waitTimer.js") %>">
</script>
<% } %>
<script language="javas cript" type="text/javascript" src="<%=
Page.ResolveUrl ("~/Scripts/button.js") %>"></script>
<script language="javas cript" type="text/javascript">
var sipState = false;
var isSubmitting = false; // limits page to only one Scan or Enter
keypress, used by onkeydown method, injected via Basepage,
HandleEnterKey( ...)
function sip_hide()
{
// check if CE device
if (navigator.appV ersion.indexOf( "Windows CE") >= 0)
{
external.CETerm .PostIDA( "IDA_SIP_HI DE", 0 );
}
}
function sip_show()
{
// check if CE device
if (navigator.appV ersion.indexOf( "Windows CE") >= 0)
{
external.CETerm .PostIDA( "IDA_SIP_SH OW", 0 );
return false;
}
return false;
}
function sip_toggle()
{
if (sipState == false)
{
external.CETerm .PostIDA( "IDA_SIP_SH OW", 0 );
sipState = true;
return false;
}
else
{
external.CETerm .PostIDA( "IDA_SIP_HI DE", 0 );
sipState = false;
}
}
function showProgress()
{
<% if (this.DisplayPr ogress) { %>
//added var since CSharp's bool in Script is
// returned as True rather than true
var bDisplayTimer = false;
<% if (this.DisplayTi mer) { %>
bDisplayTimer = true;
<% } %>
displayBusyPage (bDisplayTimer) ;
<% } %>
}
function displayBusyPage (bTimerNeeded)
{
setTimeout('doc ument.images["<%= ProgressImage.C lientID
%>"].src="<%= Page.ResolveUrl ("~/Images/progress.gif") %>"', 200);
if (bTimerNeeded)
setTimeout("Sta rtTimer()",10);
document.getEle mentById('WaitS creen').style.d isplay ="block";
document.getEle mentById('Conte nt').style.disp lay ="none";
document.getEle mentById('appNa vSect').style.d isplay ="none";
document.getEle mentById('globa lNavSect').styl e.display ="none";
}
// Scan Capture event
function baseScanEvent(d ata,source,type ,time, length)
{
if (!isSubmitting) {
theForm.<%= txtScannedData. ClientID %>.value = data;
isSubmitting = true;
external.CETerm .PostIDA( "IDA_SCAN_SUSPE ND", 0 );
//turn off scanner, user experience, limit to one scan per submit
theForm.submit( );
}
}
var onScanEvent = function scanEvent(data, source,type,tim e, length)
{
baseScanEvent(d ata,source,type ,time, length);
}
function onscan(data, source, type, time, length)
{
// external.CETerm .PostIDA( "IDA_SCAN_SUSPE ND", 0 );
var inputTypeElem = document.getEle mentById('<%=
txtInputType.Cl ientID %>');
inputTypeElem.v alue = 'S';
var barcodeTypeElem = document.getEle mentById('<%=
txtBarcodeType. ClientID %>');
var btArray = source.split(': ');
if (btArray.length 1)
barcodeTypeElem .value = btArray[1];
onScanEvent(dat a,source,type,t ime,length);
}
// End Scan Capture event
// base Screen Load event - offers beep functionality
function baseLoadEvent()
{
try
{
// For Beep(s) on Windows CE
if (navigator.appV ersion.indexOf( "Windows CE") >= 0)
{
var count = <%= BeepCount %>;
for(var i=1; i <= count; i++)
{
<%= BeepSoundPlaySt ring %>
for(var j=1; j<=100000; j++);
}
}
}
catch (e)
{
alert(e.message );
}
}
var onLoadEvent = function loadEvent() {
baseLoadEvent() ;
}
//End screen OnLoad event
// Scan Config event
function baseScanConfigE vent()
{
try
{
// First Beep on Windows CE
if (navigator.appV ersion.indexOf( "Windows CE") >= 0)
{
var sessIdx = external.sessio nindex;
//check for any enabled symbologies
var enabledSymbolog ies = "<%= this.EnabledSym bologies
%>";
if (external.CETer m.ActiveSession == 3) {
if (enabledSymbolo gies == '') {
external.CETerm .PostIDA(
"IDA_SCAN_SUSPE ND", 0 );
return;
} else {
external.CETerm .PostIDA(
"IDA_SCAN_RESUM E", 0 );
}
}
var symbologies =
enabledSymbolog ies.split(",");
// Disable all the common symbologies
var allSymbologies = new
Array("upca","u pce0","ean8","e an13","code39", "code128");
for (var i=0; i < allSymbologies. length; i++) {
external.CETerm .setProperty("s ession"+sessIdx +".scanner."+al lSymbologies[i]+".enabled",fal se);
}
// Enable the required symbologies
for (var i=0; i < symbologies.len gth; i++) {
external.CETerm .setProperty("s ession"+sessIdx +".scanner."+sy mbologies[i]+".enabled",tru e);
}
// Set the beeptime
var beepTime = <%= BeepTime %>;
external.CETerm .setProperty("s ession" + sessIdx +
".scanner.decod ebeeptime", beepTime);
// Apply the settings
external.CETerm .PostIDA(
"IDA_SCAN_APPLY CONFIG", 0 );
}
}
catch (e)
{
alert(e.message );
}
}
var onScanConfig = function scanConfigEvent () {
baseScanConfigE vent();
}
// End Scan Config event
function OnLoad()
{
onLoadEvent();
onScanConfig();
}
function disableSelectio n(target) {
target.onselect start=function( ) {return false}
}
function cancelBack()
{
if ((event.keyCode == 8 ||
(event.keyCode == 37 && event.altKey) ||
(event.keyCode == 39 && event.altKey))
&&
(event.srcEleme nt.form == null || event.srcElemen t.isTextEdit
== false)
)
{
event.cancelBub ble = true;
event.returnVal ue = false;
}
}
//function to toggle alert icon to "active" status
function alertRecdIcon () {
try {
document.getEle mentById('ctl00 _GlobalNavBarAr ea_GlobalNavAle rts').src="<%=
Page.ResolveUrl ("~/Images/new_alert_recei ved.gif") %>";
setCookie('MWN_ ALERT_ICON', '1', 1);
} catch (e) {
//ignore
}
}
//function to toggle alert icon to "normal" status
function alertNormalIcon () {
try {
document.getEle mentById('ctl00 _GlobalNavBarAr ea_GlobalNavAle rts').src="<%=
Page.ResolveUrl ("~/Images/alert.jpg") %>";
setCookie('MWN_ ALERT_ICON', '0', 1);
} catch (e) {
//ignore
}
}
//function to handleAlert from listener app
// handleAlert must exist to receive communications from the
alerting listener client
// the 'msg' argument carries the test message of the alert
function handleAlert(typ e,priority,msg, id)
{
// all parameters ignored at this time
// change below to the icon that would notify of a new alert
alertRecdIcon() ;
}
// functions to set and get cookies -- used for alert icon state
function setCookie(c_nam e,value,expired ays)
{
var exdate=new Date();
exdate.setDate( exdate.getDate( )+expiredays);
expiredays = null;
document.cookie =c_name+ "=" +escape(value)+ "; path=/;
domain=xyz.com; "+
((expiredays==n ull) ? "" : ";expires="+exd ate.toGMTString ());
}
function getCookie(c_nam e)
{
if (document.cooki e.length>0)
{
c_start=documen t.cookie.indexO f(c_name + "=");
if (c_start!=-1)
{
c_start=c_start + c_name.length+1 ;
c_end=document. cookie.indexOf( ";",c_start );
if (c_end==-1) c_end=document. cookie.length;
return unescape(docume nt.cookie.subst ring(c_start,c_ end));
}
}
return "";
}
</script>
<div id="MobileScree n" class="mobileSc reen">
<form id="form1" runat="server">
<input type="hidden" value="" name="txtScanne dData"
id="txtScannedD ata" runat="server" />
<input type="hidden" value="" name="txtBarcod eType"
id="txtBarcodeT ype" runat="server" />
<input type="hidden" value="K" name="txtInputT ype"
id="txtInputTyp e" runat="server" />
<div id="GlobalNavBa r"
class="absGloba lNav">
<asp:ContentPla ceHolder ID="GlobalNavBa rArea"
runat="server">
<div id="globalNavSe ct">
<input type="image"
name="element1" src="<%= Page.ResolveUrl ("~/Images/red1px.gif") %>"
onclick="return false;"/>
<asp:ImageButto n
ID="GlobalNavHo me" runat="server" AlternateText=" Home"
CssClass="globa lNavBtn1" ImageUrl="~/Images/home.jpg" Visible="false"
OnClick="Global NavBarHome_Clic k" />
<asp:ImageButto n
ID="GlobalNavSc an" runat="server" AlternateText=" Scan"
CssClass="globa lNavBtn2" ImageUrl="~/Images/scan.jpg" Visible="false"
OnClick="Global NavBarScan_Clic k" />
<asp:ImageButto n
ID="GlobalNavTo ggle" runat="server" AlternateText=" Toggle"
CssClass="globa lNavBtn2" ImageUrl="~/Images/toggle.jpg" Visible="false"
OnClick="Global NavBarToggle_Cl ick" />
<asp:ImageButto n
ID="GlobalNavAl erts" runat="server" AlternateText=" Alerts"
CssClass="globa lNavBtn3" ImageUrl="~/Images/alert.jpg" Visible="true"
OnClientClick=" alertNormalIcon ();" OnClick="Global NavBarAlerts_Cl ick" />
<asp:ImageButto n
ID="GlobalNavIn fo" runat="server" AlternateText=" Info"
CssClass="globa lNavBtn3" ImageUrl="~/Images/info.jpg" Visible="false"
OnClick="Global NavBarInfo_Clic k" />
<asp:ImageButto n
ID="GlobalNavEx it" runat="server" AlternateText=" Exit"
CssClass="globa lNavBtn4" ImageUrl="~/Images/exit.jpg" Visible="false"
OnClick="Global NavBarExit_Clic k" />
<asp:ImageButto n
ID="GlobalNavKe yboard" runat="server" AlternateText=" Keyboard"
CssClass="globa lNavBtn4" ImageUrl="~/Images/key.jpg" Visible="false"
OnClientClick=" setFocusTxt();s ip_show();retur n false;" />
<asp:ImageButto n
ID="GlobalNavCh angeView" runat="server" AlternateText=" Change View"
CssClass="globa lNavBtn4" ImageUrl="~/Images/change_view.jpg " Visible="false"
OnClick="Global NavBarChangeVie w_Click" />
</div>
</asp:ContentPlac eHolder>
</div>
<div id="WaitScreen "
class="absConte ntArea" style='display: none'>
<table border="0" width="100%">
<tr align="center">
<td align="center">
<asp:Image
ID="ProgressIma ge" ImageAlign="abs middle" ImageUrl="~/Images/progress.gif"
AlternateText=" In Progress" runat="server"/>
<!--img
id="ProgressIma ge" align=absmiddle src="/Images/progress.gif" alt="In
Progress" /-->
</td>
</tr>
<tr align="center"
valign="top">
<td align="center"
valign="top">
<font face="Tahoma"
style="font-weight:bold" size="3"><%= BusyMessage %></font>
<% if
(this.DisplayTi mer) { %>
<br /><br />
<span id="time"
class="waitTime r">
</span>
<% } %>
</td>
</tr>
</table>
</div>
<div id="Content"
class="absConte ntArea">
<asp:ContentPla ceHolder ID="ContentArea " runat="server" >
<h3>Default Content</h3>
</asp:ContentPlac eHolder>
</div>
<div id="AppNavBar" class="appNav">
<asp:ContentPla ceHolder ID="AppNavBarAr ea" runat="server">
<div id="appNavSect" >
<asp:ImageButto n ID="AppNavBarBa ck" runat="server"
AlternateText=" Back" CssClass="appNa vBtn1" ImageUrl="~/Images/Back.jpg"
Visible="false" OnClick="AppNav BarBack_Click" />
<asp:ImageButto n ID="AppNavBarUp " runat="server"
AlternateText=" Up" CssClass="appNa vBtn2" ImageUrl="~/Images/up.jpg"
Visible="false" OnClick="AppNav BarUp_Click" />
<asp:ImageButto n ID="AppNavBarDo wn" runat="server"
AlternateText=" Down" CssClass="appNa vBtn3" ImageUrl="~/Images/down.jpg"
Visible="false" OnClick="AppNav BarDown_Click" />
<asp:ImageButto n ID="AppNavBarNe xt" runat="server"
AlternateText=" Next" CssClass="appNa vBtn4" ImageUrl="~/Images/next.jpg"
Visible="false" OnClick="AppNav BarNext_Click" />
<asp:ImageButto n ID="AppNavBarGo " runat="server"
AlternateText=" Go" CssClass="appNa vBtn4" ImageUrl="~/Images/go.gif"
Visible="false" OnClick="AppNav BarGo_Click" />
</div>
</asp:ContentPlac eHolder>
<div class="ScreenID "><asp:Labe l ID="lblScreenID "
runat="server"> </asp:Label></div>
</div>
</form>
<script language="javas cript" type="text/javascript">
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnet Form;
}
</script>
</div>
<script type="text/javascript" language="javas cript">
disableSelectio n(document.getE lementById("Mob ileScreen"));
//set alert icon based on cookie
if (getCookie('MWN _ALERT_ICON')== '1') {
alertRecdIcon() ;
} else {
alertNormalIcon ();
}
</script>
</body>
</html>
pages - it has javascript code. That seems to have a memory leak.
When I run the web app - in about one hour, the app hangs. I looked at the
memory and it seems to be full.
I removed all the javascript code - and the app seems to be have no leaks.
As soon as I include my javascript code - the memory consumption gradually
increases.
Whether I actually invoke the javascript code or not - it doesn't matter.
The memory leak happens.
I have been looking at some of the discussions around memory leak and they
talk about circular references and closures.
Well, I dont think I have that issue.
What else can be the problem?
Here is the page that has the problem:
<%@ Master Language="C#" AutoEventWireup ="true" Inherits="MyMob ile"
CodeBehind="MyM obile.master.cs " %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt d">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitl ed Page</title>
<meta http-equiv="ScannerN avigate"
content="Javasc ript:onscan('%s ','%s','%s','%s ','%s');" />
</head>
<body onload="OnLoad( )" onbeforeunload= "showProgress() ;"
onunload="sip_h ide();" onkeydown="canc elBack();">
<% if (this.DisplayPr ogress && this.DisplayTim er)
{ %>
<script language="javas cript" type="text/javascript" src="<%=
Page.ResolveUrl ("~/Scripts/waitTimer.js") %>">
</script>
<% } %>
<script language="javas cript" type="text/javascript" src="<%=
Page.ResolveUrl ("~/Scripts/button.js") %>"></script>
<script language="javas cript" type="text/javascript">
var sipState = false;
var isSubmitting = false; // limits page to only one Scan or Enter
keypress, used by onkeydown method, injected via Basepage,
HandleEnterKey( ...)
function sip_hide()
{
// check if CE device
if (navigator.appV ersion.indexOf( "Windows CE") >= 0)
{
external.CETerm .PostIDA( "IDA_SIP_HI DE", 0 );
}
}
function sip_show()
{
// check if CE device
if (navigator.appV ersion.indexOf( "Windows CE") >= 0)
{
external.CETerm .PostIDA( "IDA_SIP_SH OW", 0 );
return false;
}
return false;
}
function sip_toggle()
{
if (sipState == false)
{
external.CETerm .PostIDA( "IDA_SIP_SH OW", 0 );
sipState = true;
return false;
}
else
{
external.CETerm .PostIDA( "IDA_SIP_HI DE", 0 );
sipState = false;
}
}
function showProgress()
{
<% if (this.DisplayPr ogress) { %>
//added var since CSharp's bool in Script is
// returned as True rather than true
var bDisplayTimer = false;
<% if (this.DisplayTi mer) { %>
bDisplayTimer = true;
<% } %>
displayBusyPage (bDisplayTimer) ;
<% } %>
}
function displayBusyPage (bTimerNeeded)
{
setTimeout('doc ument.images["<%= ProgressImage.C lientID
%>"].src="<%= Page.ResolveUrl ("~/Images/progress.gif") %>"', 200);
if (bTimerNeeded)
setTimeout("Sta rtTimer()",10);
document.getEle mentById('WaitS creen').style.d isplay ="block";
document.getEle mentById('Conte nt').style.disp lay ="none";
document.getEle mentById('appNa vSect').style.d isplay ="none";
document.getEle mentById('globa lNavSect').styl e.display ="none";
}
// Scan Capture event
function baseScanEvent(d ata,source,type ,time, length)
{
if (!isSubmitting) {
theForm.<%= txtScannedData. ClientID %>.value = data;
isSubmitting = true;
external.CETerm .PostIDA( "IDA_SCAN_SUSPE ND", 0 );
//turn off scanner, user experience, limit to one scan per submit
theForm.submit( );
}
}
var onScanEvent = function scanEvent(data, source,type,tim e, length)
{
baseScanEvent(d ata,source,type ,time, length);
}
function onscan(data, source, type, time, length)
{
// external.CETerm .PostIDA( "IDA_SCAN_SUSPE ND", 0 );
var inputTypeElem = document.getEle mentById('<%=
txtInputType.Cl ientID %>');
inputTypeElem.v alue = 'S';
var barcodeTypeElem = document.getEle mentById('<%=
txtBarcodeType. ClientID %>');
var btArray = source.split(': ');
if (btArray.length 1)
barcodeTypeElem .value = btArray[1];
onScanEvent(dat a,source,type,t ime,length);
}
// End Scan Capture event
// base Screen Load event - offers beep functionality
function baseLoadEvent()
{
try
{
// For Beep(s) on Windows CE
if (navigator.appV ersion.indexOf( "Windows CE") >= 0)
{
var count = <%= BeepCount %>;
for(var i=1; i <= count; i++)
{
<%= BeepSoundPlaySt ring %>
for(var j=1; j<=100000; j++);
}
}
}
catch (e)
{
alert(e.message );
}
}
var onLoadEvent = function loadEvent() {
baseLoadEvent() ;
}
//End screen OnLoad event
// Scan Config event
function baseScanConfigE vent()
{
try
{
// First Beep on Windows CE
if (navigator.appV ersion.indexOf( "Windows CE") >= 0)
{
var sessIdx = external.sessio nindex;
//check for any enabled symbologies
var enabledSymbolog ies = "<%= this.EnabledSym bologies
%>";
if (external.CETer m.ActiveSession == 3) {
if (enabledSymbolo gies == '') {
external.CETerm .PostIDA(
"IDA_SCAN_SUSPE ND", 0 );
return;
} else {
external.CETerm .PostIDA(
"IDA_SCAN_RESUM E", 0 );
}
}
var symbologies =
enabledSymbolog ies.split(",");
// Disable all the common symbologies
var allSymbologies = new
Array("upca","u pce0","ean8","e an13","code39", "code128");
for (var i=0; i < allSymbologies. length; i++) {
external.CETerm .setProperty("s ession"+sessIdx +".scanner."+al lSymbologies[i]+".enabled",fal se);
}
// Enable the required symbologies
for (var i=0; i < symbologies.len gth; i++) {
external.CETerm .setProperty("s ession"+sessIdx +".scanner."+sy mbologies[i]+".enabled",tru e);
}
// Set the beeptime
var beepTime = <%= BeepTime %>;
external.CETerm .setProperty("s ession" + sessIdx +
".scanner.decod ebeeptime", beepTime);
// Apply the settings
external.CETerm .PostIDA(
"IDA_SCAN_APPLY CONFIG", 0 );
}
}
catch (e)
{
alert(e.message );
}
}
var onScanConfig = function scanConfigEvent () {
baseScanConfigE vent();
}
// End Scan Config event
function OnLoad()
{
onLoadEvent();
onScanConfig();
}
function disableSelectio n(target) {
target.onselect start=function( ) {return false}
}
function cancelBack()
{
if ((event.keyCode == 8 ||
(event.keyCode == 37 && event.altKey) ||
(event.keyCode == 39 && event.altKey))
&&
(event.srcEleme nt.form == null || event.srcElemen t.isTextEdit
== false)
)
{
event.cancelBub ble = true;
event.returnVal ue = false;
}
}
//function to toggle alert icon to "active" status
function alertRecdIcon () {
try {
document.getEle mentById('ctl00 _GlobalNavBarAr ea_GlobalNavAle rts').src="<%=
Page.ResolveUrl ("~/Images/new_alert_recei ved.gif") %>";
setCookie('MWN_ ALERT_ICON', '1', 1);
} catch (e) {
//ignore
}
}
//function to toggle alert icon to "normal" status
function alertNormalIcon () {
try {
document.getEle mentById('ctl00 _GlobalNavBarAr ea_GlobalNavAle rts').src="<%=
Page.ResolveUrl ("~/Images/alert.jpg") %>";
setCookie('MWN_ ALERT_ICON', '0', 1);
} catch (e) {
//ignore
}
}
//function to handleAlert from listener app
// handleAlert must exist to receive communications from the
alerting listener client
// the 'msg' argument carries the test message of the alert
function handleAlert(typ e,priority,msg, id)
{
// all parameters ignored at this time
// change below to the icon that would notify of a new alert
alertRecdIcon() ;
}
// functions to set and get cookies -- used for alert icon state
function setCookie(c_nam e,value,expired ays)
{
var exdate=new Date();
exdate.setDate( exdate.getDate( )+expiredays);
expiredays = null;
document.cookie =c_name+ "=" +escape(value)+ "; path=/;
domain=xyz.com; "+
((expiredays==n ull) ? "" : ";expires="+exd ate.toGMTString ());
}
function getCookie(c_nam e)
{
if (document.cooki e.length>0)
{
c_start=documen t.cookie.indexO f(c_name + "=");
if (c_start!=-1)
{
c_start=c_start + c_name.length+1 ;
c_end=document. cookie.indexOf( ";",c_start );
if (c_end==-1) c_end=document. cookie.length;
return unescape(docume nt.cookie.subst ring(c_start,c_ end));
}
}
return "";
}
</script>
<div id="MobileScree n" class="mobileSc reen">
<form id="form1" runat="server">
<input type="hidden" value="" name="txtScanne dData"
id="txtScannedD ata" runat="server" />
<input type="hidden" value="" name="txtBarcod eType"
id="txtBarcodeT ype" runat="server" />
<input type="hidden" value="K" name="txtInputT ype"
id="txtInputTyp e" runat="server" />
<div id="GlobalNavBa r"
class="absGloba lNav">
<asp:ContentPla ceHolder ID="GlobalNavBa rArea"
runat="server">
<div id="globalNavSe ct">
<input type="image"
name="element1" src="<%= Page.ResolveUrl ("~/Images/red1px.gif") %>"
onclick="return false;"/>
<asp:ImageButto n
ID="GlobalNavHo me" runat="server" AlternateText=" Home"
CssClass="globa lNavBtn1" ImageUrl="~/Images/home.jpg" Visible="false"
OnClick="Global NavBarHome_Clic k" />
<asp:ImageButto n
ID="GlobalNavSc an" runat="server" AlternateText=" Scan"
CssClass="globa lNavBtn2" ImageUrl="~/Images/scan.jpg" Visible="false"
OnClick="Global NavBarScan_Clic k" />
<asp:ImageButto n
ID="GlobalNavTo ggle" runat="server" AlternateText=" Toggle"
CssClass="globa lNavBtn2" ImageUrl="~/Images/toggle.jpg" Visible="false"
OnClick="Global NavBarToggle_Cl ick" />
<asp:ImageButto n
ID="GlobalNavAl erts" runat="server" AlternateText=" Alerts"
CssClass="globa lNavBtn3" ImageUrl="~/Images/alert.jpg" Visible="true"
OnClientClick=" alertNormalIcon ();" OnClick="Global NavBarAlerts_Cl ick" />
<asp:ImageButto n
ID="GlobalNavIn fo" runat="server" AlternateText=" Info"
CssClass="globa lNavBtn3" ImageUrl="~/Images/info.jpg" Visible="false"
OnClick="Global NavBarInfo_Clic k" />
<asp:ImageButto n
ID="GlobalNavEx it" runat="server" AlternateText=" Exit"
CssClass="globa lNavBtn4" ImageUrl="~/Images/exit.jpg" Visible="false"
OnClick="Global NavBarExit_Clic k" />
<asp:ImageButto n
ID="GlobalNavKe yboard" runat="server" AlternateText=" Keyboard"
CssClass="globa lNavBtn4" ImageUrl="~/Images/key.jpg" Visible="false"
OnClientClick=" setFocusTxt();s ip_show();retur n false;" />
<asp:ImageButto n
ID="GlobalNavCh angeView" runat="server" AlternateText=" Change View"
CssClass="globa lNavBtn4" ImageUrl="~/Images/change_view.jpg " Visible="false"
OnClick="Global NavBarChangeVie w_Click" />
</div>
</asp:ContentPlac eHolder>
</div>
<div id="WaitScreen "
class="absConte ntArea" style='display: none'>
<table border="0" width="100%">
<tr align="center">
<td align="center">
<asp:Image
ID="ProgressIma ge" ImageAlign="abs middle" ImageUrl="~/Images/progress.gif"
AlternateText=" In Progress" runat="server"/>
<!--img
id="ProgressIma ge" align=absmiddle src="/Images/progress.gif" alt="In
Progress" /-->
</td>
</tr>
<tr align="center"
valign="top">
<td align="center"
valign="top">
<font face="Tahoma"
style="font-weight:bold" size="3"><%= BusyMessage %></font>
<% if
(this.DisplayTi mer) { %>
<br /><br />
<span id="time"
class="waitTime r">
</span>
<% } %>
</td>
</tr>
</table>
</div>
<div id="Content"
class="absConte ntArea">
<asp:ContentPla ceHolder ID="ContentArea " runat="server" >
<h3>Default Content</h3>
</asp:ContentPlac eHolder>
</div>
<div id="AppNavBar" class="appNav">
<asp:ContentPla ceHolder ID="AppNavBarAr ea" runat="server">
<div id="appNavSect" >
<asp:ImageButto n ID="AppNavBarBa ck" runat="server"
AlternateText=" Back" CssClass="appNa vBtn1" ImageUrl="~/Images/Back.jpg"
Visible="false" OnClick="AppNav BarBack_Click" />
<asp:ImageButto n ID="AppNavBarUp " runat="server"
AlternateText=" Up" CssClass="appNa vBtn2" ImageUrl="~/Images/up.jpg"
Visible="false" OnClick="AppNav BarUp_Click" />
<asp:ImageButto n ID="AppNavBarDo wn" runat="server"
AlternateText=" Down" CssClass="appNa vBtn3" ImageUrl="~/Images/down.jpg"
Visible="false" OnClick="AppNav BarDown_Click" />
<asp:ImageButto n ID="AppNavBarNe xt" runat="server"
AlternateText=" Next" CssClass="appNa vBtn4" ImageUrl="~/Images/next.jpg"
Visible="false" OnClick="AppNav BarNext_Click" />
<asp:ImageButto n ID="AppNavBarGo " runat="server"
AlternateText=" Go" CssClass="appNa vBtn4" ImageUrl="~/Images/go.gif"
Visible="false" OnClick="AppNav BarGo_Click" />
</div>
</asp:ContentPlac eHolder>
<div class="ScreenID "><asp:Labe l ID="lblScreenID "
runat="server"> </asp:Label></div>
</div>
</form>
<script language="javas cript" type="text/javascript">
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnet Form;
}
</script>
</div>
<script type="text/javascript" language="javas cript">
disableSelectio n(document.getE lementById("Mob ileScreen"));
//set alert icon based on cookie
if (getCookie('MWN _ALERT_ICON')== '1') {
alertRecdIcon() ;
} else {
alertNormalIcon ();
}
</script>
</body>
</html>
Comment