3.2.0

Refreshing the grid in IE

I wrote a function to refresh the grid in inputbox onblur event.it works 100% in firefox.but in IE if i click on the grid after clicking the input box IE gives me a Dontsend error.why does this happen.plz help me.
Tishamal Mohottala
January 27,
this occurs in versions above 2.5

sample codes

<input type='text' onblur="obj.refresh()">

// create ActiveWidgets Grid javascript object
var obj = new AW.UI.Grid;
obj.setId("myGrid");

// define data formats
var str = new AW.Formats.String;
var num = new AW.Formats.Number;

obj.setCellFormat([str, str, num, num, num]);

// provide cells and headers text
obj.setCellText(myData);
obj.setHeaderText(myColumns);

// set number of rows/columns
obj.setRowCount(20);
obj.setColumnCount(5);

// enable row selectors
obj.setSelectorVisible(true);
obj.setSelectorText(function(i){return this.getRowPosition(i)+1});

// set headers width/height
obj.setSelectorWidth(28);
obj.setHeaderHeight(20);

// set row selection
obj.setSelectionMode("single-row");

// set click action handler
obj.onCellClicked = function(event, col, row){window.status = this.getCellText(col, row)};

// write grid html to the page
document.write(obj);
Tishamal Mohottala
January 27,
What is 'Dontsend error'?
Alex (ActiveWidgets)
January 27,
It is a windows generated error
screen shots
1- error message
[URL=http://imageshack.us][IMG]http://img218.imageshack.us/img218/4775/61619785ab3.jpg[/IMG][/URL]
By [URL=http://profile.imageshack.us/user/tmal]tmal[/URL]
or
http://img218.imageshack.us/img218/4775/61619785ab3.jpg
2- Report
[URL=http://imageshack.us][IMG]http://img156.imageshack.us/img156/4660/23055162hp6.jpg[/IMG][/URL]
By [URL=http://profile.imageshack.us/user/tmal]tmal[/URL]
or
http://img156.imageshack.us/img156/4660/23055162hp6.jpg
Tishamal Mohottala
January 27,
I believe that's commonly called a Dr. Watson. You can find more details on the error in the event viewer (under applications). You can find the event viewer under the control panel.

But, basically, it appears to be some JavaScript code is causing IE's JS engine to crash. Can you post which exact version of IE you're using (help menu -> About Internet Explorer)? And let us know if it works or fails with other versions of IE.
Anthony
January 28,
this error appears in both IE versions 6(6.0.2900.2180.xpsp_sp2_rtm.040803-2153) & 7(7.0.5730.13).
January 28,
event log
http://img136.imageshack.us/img136/5695/44174865en2.jpg
January 29,
obj.setCellFormat is usually coded in conjunction with setCellData and you'r using obj.setCellText(myData);

Is myData defined elsewhere ?
Incognitus
January 29,
sample codes

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ActiveWidgets Examples</title>

<!-- fix box model in firefox/safari/opera -->
<style type="text/css">
.aw-quirks * {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}

body {font: 12px Tahoma}
</style>

<!-- include links to the script and stylesheet files -->
<script src="../../runtime/lib/aw.js" type="text/javascript"></script>
<link href="../../runtime/styles/system/aw.css" rel="stylesheet">

<!-- grid format -->
<style type="text/css">
#myGrid {height: 200px; width: 500px;}
#myGrid .aw-row-selector {text-align: center}

#myGrid .aw-column-0 {width: 80px;}
#myGrid .aw-column-1 {width: 200px;}
#myGrid .aw-column-2 {text-align: right;}
#myGrid .aw-column-3 {text-align: right;}
#myGrid .aw-column-4 {text-align: right;}

#myGrid .aw-grid-cell {border-right: 1px solid threedlightshadow;}
#myGrid .aw-grid-row {border-bottom: 1px solid threedlightshadow;}

/* box model fix for strict doctypes, safari */
.aw-strict #myGrid .aw-grid-cell {padding-right: 3px;}
.aw-strict #myGrid .aw-grid-row {padding-bottom: 3px;}

</style>

<!-- grid data -->
<script type="text/javascript">
var myData = [
["MSFT","Microsoft Corporation", "314,571.156", "32,187.000", "55000"],
["ORCL", "Oracle Corporation", "62,615.266", "9,519.000", "40650"],
["SAP", "SAP AG (ADR)", "40,986.328", "8,296.420", "28961"],
["CA", "Computer Associates Inter", "15,606.335", "3,164.000", "16000"],
["ERTS", "Electronic Arts Inc.", "14,490.895", "2,503.727", "4000"],
["SFTBF", "Softbank Corp. (ADR)", "14,485.840", ".000", "6865"],
["VRTS", "Veritas Software Corp.", "14,444.272", "1,578.658", "5647"],
["SYMC", "Symantec Corporation", "9,932.483", "1,482.029", "4300"],
["INFY", "Infosys Technologies Ltd.", "9,763.851", "830.748", "15400"],
["INTU", "Intuit Inc.", "9,702.477", "1,650.743", "6700"],
["ADBE", "Adobe Systems Incorporate", "9,533.050", "1,230.817", "3341"],
["PSFT", "PeopleSoft, Inc.", "8,246.467", "1,941.167", "8180"],
["SEBL", "Siebel Systems, Inc.", "5,434.649", "1,417.952", "5909"],
["BEAS", "BEA Systems, Inc.", "5,111.813", "965.694", "3063"],
["SNPS", "Synopsys, Inc.", "4,482.535", "1,169.786", "4254"],
["CHKP", "Check Point Software Tech", "4,396.853", "424.769", "1203"],
["MERQ", "Mercury Interactive Corp.", "4,325.488", "444.063", "1822"],
["DOX", "Amdocs Limited", "4,288.017", "1,427.088", "9400"],
["CTXS", "Citrix Systems, Inc.", "3,946.485", "554.222", "1670"],
["KNM", "Konami Corporation (ADR)", "3,710.784", ".000", "4313"]
];

var myColumns = [
"Ticker", "Company Name", "Market Cap.", "$ Sales", "Employees"
];
</script>
</head>
<body>
<input id="Text1" type="text" onblur="obj.refresh();"/>
<script type="text/javascript">

// create ActiveWidgets Grid javascript object
var obj = new AW.UI.Grid;
obj.setId("myGrid");

// define data formats
var str = new AW.Formats.String;
var num = new AW.Formats.Number;

obj.setCellFormat([str, str, num, num, num]);

// provide cells and headers text
obj.setCellText(myData);
obj.setHeaderText(myColumns);

// set number of rows/columns
obj.setRowCount(20);
obj.setColumnCount(5);

// enable row selectors
obj.setSelectorVisible(true);
obj.setSelectorText(function(i){return this.getRowPosition(i)+1});

// set headers width/height
obj.setSelectorWidth(28);
obj.setHeaderHeight(20);

// set row selection
obj.setSelectionMode("single-row");

// set click action handler
obj.onCellClicked = function(event, col, row){window.status = this.getCellText(col, row)};

// write grid html to the page
document.write(obj);

</script>
</body>
</html>
Tishamal Mohottala
January 29,
I get a Runtime Error! R6025 -pure virtual function call when I run your sample, but only if I am doing the onblur event over the input more than once in the same second ( or 1,5 seconds), so I think it is related to trying to do a refresh while still doing a previous refresh ( and unfinished the rendering action).
I suggest to apply the refresh only once , doing something like:
<input id="Text1" type="text" onblur="DoMyRefresh();"/>
<script type="text/javascript">
var isstillrefreshing = false;

function DoMyRefresh(){
isstillrefreshing = true;
if (!isstillrefreshing){obj.refresh()}
if (isstillrefreshing){alert( 'still refreshing, Please wait a second and try again')} 
isstillrefreshing = false;
} 
// create ActiveWidgets Grid javascript object
var obj = new AW.UI.Grid;
//. . . . . . . ..


HTH
Carlos
January 30,
IE may crash if you destroy the focused element inside onfocus/onblur events. I guess this is what happens in your case - you move focus into the grid and at the same time refresh the grid (destroying and recreating the focused element).

As a workaround try grid refresh after some timeout, when blur/focus events are already completed.
Alex (ActiveWidgets)
January 30,

This topic is archived.

See also:


Back to support forum