allanmark
asked on
XHTML 1.0 versus HTML 4.0
Greetings all
I have been downloading and evaluating various grids. I finally settled on one that does it for me
(http://www.codeproject.com/KB/webforms/ScrollingGrid.aspx)
However, when I make use of it on my page, everything is condensed. After some scrutiny (and muttered words not found in any known dictionary!), I found the difference XHTML 1.0 vs HTML 4.0
My Page source is:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
The demo page is:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
Is ther any way around this? The grid is exactly what I need and I'd hate to have to attempt something from scratch!
In advance, thanks!!
allanmark
Err-Grid.jpg
Ok-Grid.jpg
I have been downloading and evaluating various grids. I finally settled on one that does it for me
(http://www.codeproject.com/KB/webforms/ScrollingGrid.aspx)
However, when I make use of it on my page, everything is condensed. After some scrutiny (and muttered words not found in any known dictionary!), I found the difference XHTML 1.0 vs HTML 4.0
My Page source is:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
The demo page is:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
Is ther any way around this? The grid is exactly what I need and I'd hate to have to attempt something from scratch!
In advance, thanks!!
allanmark
Err-Grid.jpg
Ok-Grid.jpg
Allan,
just use CSS to modify the font-size. Try it by putting the content of the code snippet into the <head> of the document.
just use CSS to modify the font-size. Try it by putting the content of the code snippet into the <head> of the document.
<style>
body { font-size: 8px; }
</style>
Try raising the font-size if it is too small.
ASKER
Tried "body { font-size: 8px; ..." - same result.
Set font-size in grid ("Font-Size="Medium">") - made the grid font larger. I also set the font in the containing control. It appearred not to do anything, but when I hit F5 to refresh, you geta brief flah of the hedaders at the larger size. DOn't know what's happening there!!
Snippet contains Page Source And Code Behind for Grid with one column and only one record.
Set font-size in grid ("Font-Size="Medium">") - made the grid font larger. I also set the font in the containing control. It appearred not to do anything, but when I hit F5 to refresh, you geta brief flah of the hedaders at the larger size. DOn't know what's happening there!!
Snippet contains Page Source And Code Behind for Grid with one column and only one record.
PAGE SOURCE:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<%@ Register TagPrefix=avg Assembly=ScrollingGrid Namespace=AvgControls %>
<%@ Register TagPrefix=avg TagName=DemoControl Src="~/WebUserControl2.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>ScrollingGrid Demo VII</title>
<style>
body { font-family:verdana; font-size: 8px; }
tr { font-size:0.7em; }
div.links { font-family:verdana; font-size:1.2em; color:white; }
a { color:white; }
</style>
<script>
function sg1_updateHeight()
{
scaleHeightToBrowser('sg1', 175, 80);
}
if (window.attachEvent)
window.attachEvent("onresize", sg1_updateHeight);
else if (window.addEventListener)
window.addEventListener("resize", sg1_updateHeight, false);
</script>
</head>
<body bgcolor=#888888>
<div class=links>
Demo 1 </div>
<hr size=1 color=black>
<form id="Form1" runat="server">
Variable width & height ScrollingGrid within a table. Control is set to update the last scroll position on postback.<br>
<br>
<avg:ScrollingGrid ID=sdd runat=server Width=100% Height=190 HeaderWidthReduction=17>
<asp:DataGrid runat=server ID=Grid2
AutoGenerateColumns=True AllowSorting=True AllowPaging=True PageSize=35
OnPageIndexChanged=Grid2_PageIndexChanged OnSortCommand=Grid2_Sort>
<HeaderStyle BackColor=red ForeColor=white Font-Bold=True />
<ItemStyle BackColor=#fefefe />
<AlternatingItemStyle BackColor=#eeeeee />
<PagerStyle BackColor=silver ForeColor=White Mode=NumericPages />
</asp:DataGrid>
</avg:ScrollingGrid>
<script language=javascript>
<!--
setTimeout("sg1_updateHeight()", 100)
//--></script>
</form>
CODE BEHIND:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;
public partial class Default2 : System.Web.UI.Page
{
string sortCol = "OrderID";
override protected void OnInit(EventArgs e)
{
this.Load += new System.EventHandler(this.Page_Load);
base.OnInit(e);
}
protected void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
PopulateData();
}
sdd.SetStartScrollPosFromPostack();
}
void PopulateData()
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + Server.MapPath("data.mdb"));
conn.Open();
OleDbDataAdapter adap = new OleDbDataAdapter("SELECT CustomerId FROM Orders Where OrderId = 10248 ORDER BY " + this.sortCol, conn);
DataTable tbl = new DataTable();
adap.Fill(tbl);
Grid2.DataSource = tbl;
Grid2.DataBind();
conn.Close();
}
protected void Grid2_PageIndexChanged(object sender, DataGridPageChangedEventArgs e)
{
Grid2.CurrentPageIndex = e.NewPageIndex;
PopulateData();
}
protected void Grid2_Sort(object sender, DataGridSortCommandEventArgs e)
{
this.sortCol = e.SortExpression;
PopulateData();
}
}
As I don't have the scrolling grid to test with, could you please upload the GENERATED Html (view source in your web browser).
Also, what browser are you using? IE, Firefox? Have you tested in different browsers?
Also, what browser are you using? IE, Firefox? Have you tested in different browsers?
Try this
Replace
<avg:ScrollingGrid ID=sdd runat=server Width=100% Height=190 HeaderWidthReduction=17>
with
<avg:ScrollingGrid ID=sdd runat=server Width=100% Height=190 HeaderWidthReduction=17 CssClass=tableview>
Then add this to the <head> of the document:
<style>
.tableview { font-size: 14px; }
</style>
Replace
<avg:ScrollingGrid ID=sdd runat=server Width=100% Height=190 HeaderWidthReduction=17>
with
<avg:ScrollingGrid ID=sdd runat=server Width=100% Height=190 HeaderWidthReduction=17 CssClass=tableview>
Then add this to the <head> of the document:
<style>
.tableview { font-size: 14px; }
</style>
Be sure to remove all font-size changes you made before
iserko - if the ScrollingGrid is working correctly, surely you shouldn't have to fudge it like this?
ASKER
1. Removed previous font changes
2. Applied "tableview class".
Back to the first result -- everything condensed.
2. Applied "tableview class".
Back to the first result -- everything condensed.
<head>
<title>ScrollingGrid Demo VX</title>
<style>
tableview { font-size: 14px; }
body { font-family:verdana; font-size: 8px; }
tr { font-size:0.7em; }
div.links { font-family:verdana; font-size:1.2em; color:white; }
a { color:white; }
</style>
...........
<avg:ScrollingGrid ID=sdd runat=server Width=100% Height=190 HeaderWidthReduction=17 CssClass="tableview">
...........
...............
Remove the font-size setting in body
change
body { font-family:verdana; font-size: 8px; }
to
body { font-family:verdana; }
change
body { font-family:verdana; font-size: 8px; }
to
body { font-family:verdana; }
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Did so. Slightly larger. See attached jpg.
I got to wondering if this coudln't be one of those Firefox (which, BTW, I'm using) / IExplorer issues. So, I ran it in IE, but got an error on this line "document.getElementById(s gID + "$divContent").style.heigh t = newHeight;", in the JScript file (ScrollingGrid.js - see snippet).
I got to wondering if this coudln't be one of those Firefox (which, BTW, I'm using) / IExplorer issues. So, I ran it in IE, but got an error on this line "document.getElementById(s
/*
* Copyright © 2005, Ashley van Gerven (ashley.v__g__@g__mail.com - remove '_')
* All rights reserved.
*
* Use of this script, with or without modification, is permitted
* provided that the above copyright notice and disclaimer below is not removed.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
* OF SUCH DAMAGE.
*/
var updateSGDivWidthsExplorerTimer = null
function initScrollingGrid(scrollingGridID, gridID, lastRowIsPager, startScrollLeft, startScrollTop)
{
if (navigator.userAgent.toLowerCase().indexOf("opera") != -1) // opera not supported
return;
if (!document.getElementById) // old browsers not supported
return;
var tblHdr = document.getElementById(scrollingGridID + "$tblHdr");
var tblDataGrid = document.getElementById(gridID);
var tblPager = document.getElementById(scrollingGridID + "$tblPager");
// get header table's first row
var tbodyEl = tblHdr.childNodes[firstChildElIndex(tblHdr, "TBODY")];
var trEl = tbodyEl.childNodes[firstChildElIndex(tbodyEl, "TR")];
// get datagrid table's first row
var tbodyEl2 = tblDataGrid.childNodes[firstChildElIndex(tblDataGrid, "TBODY")];
var trEl2 = tbodyEl2.childNodes[firstChildElIndex(tbodyEl2, "TR")];
// delete empty TR on placeholder table
tbodyEl.removeChild(trEl);
// move the header row from datagrid table to our placeholder table
tbodyEl.appendChild(trEl2);
if (lastRowIsPager) // if grid pager is last row then move it below the scrolling DIV (i.e. freeze it)
{
// get pager table's first row
var tbodyEl3 = tblPager.childNodes[firstChildElIndex(tblPager, "TBODY")];
var trEl3 = tbodyEl3.childNodes[firstChildElIndex(tbodyEl3, "TR")];
// get datagrid table's last row
var trEl4 = tbodyEl2.childNodes[lastChildElIndex(tbodyEl2, "TR")];
// delete empty TR on placeholder table
tbodyEl3.removeChild(trEl3);
// move the footer from datagrid table to our seperate table
tbodyEl3.appendChild(trEl4);
// set table width to match content DIV
tblPager.width = document.getElementById(scrollingGridID + "$divContent").offsetWidth;
}
setColumnWidths(scrollingGridID, gridID);
if (window.attachEvent) // IE only - resize DIVs now + on resize
{
updateSGDivWidthsExplorer();
window.attachEvent("onresize", scheduleUpdateSGDivWidthsExplorer);
}
}
// match up column widths
function setColumnWidths(scrollingGridID, gridID)
{
// reset scroll positions since FF remembers them on page-refresh
document.getElementById(scrollingGridID + "$divHdr").scrollLeft = 0;
document.getElementById(scrollingGridID + "$divContent").scrollLeft = 0;
document.getElementById(scrollingGridID + "$divContent").scrollTop = 0;
// for FF: ensure enough space to expand columns
document.getElementById(scrollingGridID + "$headerCntr").style.width = 10000;
document.getElementById(scrollingGridID + "$contentCntr").style.width = 10000;
var widths = new Array();
var totalWidth = 0;
var tblHdr = document.getElementById(scrollingGridID + "$tblHdr");
var tblGrid = document.getElementById(gridID);
// get header row
var tbodyEl = tblHdr.childNodes[firstChildElIndex(tblHdr, "TBODY")];
var trEl = tbodyEl.childNodes[firstChildElIndex(tbodyEl, "TR")];
// get first content row
var tbodyEl2 = tblGrid.childNodes[firstChildElIndex(tblGrid, "TBODY")];
var trIndex = firstChildElIndex(tbodyEl2, "TR");
if (trIndex == -1) // i.e. no content rows
{
document.getElementById(scrollingGridID + "$contentCntr").style.width = 1;
return;
}
var trEl2 = tbodyEl2.childNodes[trIndex];
for (var i=0; i<trEl.childNodes.length; i++)
{
if (trEl.childNodes[i].nodeName != "TD") // skip #text nodes
continue;
// TD element for the header row
var tdHdr = trEl.childNodes[i];
// TD element for the content row
var tdContent = trEl2.childNodes[i];
// get width of of the header or content cell (depends which is widest)
if (tdHdr.offsetWidth > tdContent.offsetWidth)
widths[i] = tdHdr.offsetWidth;
else
widths[i] = tdContent.offsetWidth;
totalWidth += widths[i];
}
if (document.all) // IE: set table-layout style
{
tblGrid.style.tableLayout = "fixed";
tblHdr.style.tableLayout = "fixed";
}
for (var i=0; i<widths.length; i++)
{
if (widths[i]+"" == "undefined")
continue;
// TD element for the header row
var tdHdr = trEl.childNodes[i];
// TD element for the content row
var tdContent = trEl2.childNodes[i];
var widthAdjustment = 0;
if (!document.all)
{
widthAdjustment = -2 * parseInt(tblGrid.getAttribute("cellpadding")); // FF: subtract cellpadding
}
// Update either the header cell or content cell (not both, otherwise FF stuffs up)
if (tdHdr.offsetWidth != widths[i])
tdHdr.style.width = widths[i] + widthAdjustment; // update header column width
if (tdContent.offsetWidth != widths[i])
tdContent.style.width = widths[i] + widthAdjustment; // update content column width
}
// update the content container table width from 10000 to correct width
document.getElementById(scrollingGridID + "$contentCntr").style.width = tblGrid.offsetWidth;
}
// IE resize event handler
function scheduleUpdateSGDivWidthsExplorer()
{
clearTimeout(updateSGDivWidthsExplorerTimer);
updateSGDivWidthsExplorerTimer = setTimeout("updateSGDivWidthsExplorer()", 20);
}
// IE only - update widths for all ScrollingGrids according to their container table (since content of table is clipped)
function updateSGDivWidthsExplorer()
{
var arr = document.getElementsByTagName("TABLE");
for (i=0; i<arr.length; i++)
{
if (arr[i].getAttribute("NAME") == "ScrollingGrid")
{
var scrollingGridID = arr[i].id;
var headerReduction = 0;
if (document.getElementById(scrollingGridID + "$divHdr").style.marginRight != "")
headerReduction = parseInt(document.getElementById(scrollingGridID + "$divHdr").style.marginRight);
var footerReduction = 0;
if (document.getElementById(scrollingGridID + "$tblPager") != null && document.getElementById(scrollingGridID + "$tblPager").style.marginRight != "")
footerReduction = parseInt(document.getElementById(scrollingGridID + "$tblPager").style.marginRight);
try
{
document.getElementById(scrollingGridID + "$divHdr").style.width = document.getElementById(scrollingGridID).clientWidth - headerReduction;
document.getElementById(scrollingGridID + "$divContent").style.width = document.getElementById(scrollingGridID).clientWidth;
document.getElementById(scrollingGridID + "$tblPager").style.width = document.getElementById(scrollingGridID).clientWidth - footerReduction;
}
catch (err)
{}
updateScroll(document.getElementById(scrollingGridID + "$divContent"), scrollingGridID);
}
}
}
// find the index of first child element (e.g. TBODY) - handy for FF which creates #text nodes from whitespace
function firstChildElIndex(el, searchFor)
{
for (var i=0; i<el.childNodes.length; i++)
{
if (el.childNodes[i].nodeName == searchFor)
return i;
}
return -1;
}
// find the index of last child element
function lastChildElIndex(el, searchFor)
{
for (var i=el.childNodes.length-1; i>=0; i--)
{
if (el.childNodes[i].nodeName == searchFor)
return i;
}
return -1;
}
// content scroll event handler (matches the header row with the horizontal scroll position of content)
function updateScroll(divObj, scrollingGridID)
{
if (document.getElementById(scrollingGridID + "$divHdr") != null)
document.getElementById(scrollingGridID + "$divHdr").scrollLeft = divObj.scrollLeft;
// save scroll position to hidden input
document.getElementById(scrollingGridID + "$hdnScrollPos").value = divObj.scrollLeft + "-" + divObj.scrollTop;
}
function setContentScrollPos(sgID, left, top)
{
var divContent = document.getElementById(sgID + "$divContent");
divContent.scrollLeft = left;
divContent.scrollTop = top;
}
// ************************************
// * Utility functions *
// ************************************
// scale the content DIV height with the browser window height minus specified height [reduceBy]
function scaleHeightToBrowser(sgID, reduceBy, minHeight)
{
var newHeight = document.body.clientHeight - reduceBy;
if (newHeight < minHeight)
newHeight = minHeight;
document.getElementById(sgID + "$divContent").style.height = newHeight;
}
// scroll the content by cellspacing height to get rid of double border
function adjustScrollTop(scrollingGridID, gridID)
{
document.getElementById(scrollingGridID + "$divContent").scrollTop = parseInt(document.getElementById(gridID).getAttribute("cellspacing"));
}
// reduce the height of the header div by cellspacing height to get rid of double border (alternate method to adjustScrollTop)
function cropHeader(scrollingGridID, gridID)
{
document.getElementById(scrollingGridID + "$divHdr").style.height = document.getElementById(scrollingGridID + "$divHdr").offsetHeight - parseInt(document.getElementById(gridID).getAttribute("cellspacing"));
}
Latest-Grid.jpg
ASKER
Ooops ... the error message for that JScript = "Microsoft JScript runtime error: Object required"
@Cyber-Spy ... I didn't suggest fudging the script ... I suggested used the proper procedure (stated on the programmer's page) to apply a certain CSS style for the table
@Allan ... the javascript should be working. Its working on the programmer's demo page in IE7 as well as Firefox.
Oh and btw ... you missed something in the <style> element ... there should be a <dot> in front of tableview (see code snippet)
@Allan ... the javascript should be working. Its working on the programmer's demo page in IE7 as well as Firefox.
Oh and btw ... you missed something in the <style> element ... there should be a <dot> in front of tableview (see code snippet)
<head>
<title>ScrollingGrid Demo VX</title>
<style>
.tableview { font-size: 14px; }
body { font-family:verdana; font-size: 8px; }
tr { font-size:0.7em; }
div.links { font-family:verdana; font-size:1.2em; color:white; }
a { color:white; }
</style>
...........
<avg:ScrollingGrid ID=sdd runat=server Width=100% Height=190 HeaderWidthReduction=17 CssClass="tableview">
...........
...............
ASKER
Ooops! Ok, corrected the .tableview. Sizng is now improved (see atatched, laest02.jpg). If you look at this, you ill see that while the sizing is larger, the column spacing varies.
Back to the DOC header ... the demo header contained ...HTML 4.0 ... and was created with VS2003. I'm using VS2005 whichc creates the DOC header with XHTML 1.0. Any chance taht this is a compatability issue?
Back to the DOC header ... the demo header contained ...HTML 4.0 ... and was created with VS2003. I'm using VS2005 whichc creates the DOC header with XHTML 1.0. Any chance taht this is a compatability issue?
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
@Iserko,
Although creating a CSS class is indeed the correct way of applying a style to a table, if this ScrollingGrid has been well designed and implemented, all the styles applicable to it should be available as properties of the object, and there should be no need to resort to creating your own classes, which the control may override (a style attribute in the table tag would take precedence over the page level class)
@allanmark
From what I've read above, it would seem there is something wrong with the HTML output by the control (i.e. not to XHTML standards). If you could just do a view source in the web browser, and post the rendered HTML here, I can play with it a browser and see what can be changed to fix the output.
Although creating a CSS class is indeed the correct way of applying a style to a table, if this ScrollingGrid has been well designed and implemented, all the styles applicable to it should be available as properties of the object, and there should be no need to resort to creating your own classes, which the control may override (a style attribute in the table tag would take precedence over the page level class)
@allanmark
From what I've read above, it would seem there is something wrong with the HTML output by the control (i.e. not to XHTML standards). If you could just do a view source in the web browser, and post the rendered HTML here, I can play with it a browser and see what can be changed to fix the output.
ASKER
Many thanks for all your efforts.
Please see attached source.
Please see attached source.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>ScrollingGrid Demo Original</title>
<style>
body { font-family:verdana; font-size:0.7em; }
tr { font-size:0.7em; }
div.links { font-family:verdana; font-size:1.2em; color:white; }
a { color:white; }
</style>
<script>
function sg1_updateHeight()
{
scaleHeightToBrowser('sg1', 175, 80);
}
if (window.attachEvent)
window.attachEvent("onresize", sg1_updateHeight);
else if (window.addEventListener)
window.addEventListener("resize", sg1_updateHeight, false);
</script>
</head>
<body bgcolor=#888888>
<div class=links>
Demo 1 </div>
<hr size=1 color=black>
<form name="Form1" method="post" action="Default2.aspx" id="Form1">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNjAzMTU4NTE3D2QWAgIBD2QWBAIBD2QWAgICDxQrAAsPFggeCERhdGFLZXlzFgAeC18hSXRlbUNvdW50AiMeCVBhZ2VDb3VudAIYHhVfIURhdGFTb3VyY2VJdGVtQ291bnQCvgZkZGRkZGRkZGQWCB4JR3JpZExpbmVzCyojU3lzdGVtLldlYi5VSS5XZWJDb250cm9scy5HcmlkTGluZXMAHgtCb3JkZXJXaWR0aBsAAAAAAAAAAAEAAAAeC0NlbGxQYWRkaW5nAgIeBF8hU0ICoIAoFCsADjwrAAQBABYIHgpIZWFkZXJUZXh0BQdPcmRlcklEHglEYXRhRmllbGQFB09yZGVySUQeDlNvcnRFeHByZXNzaW9uBQdPcmRlcklEHghSZWFkT25seWg8KwAEAQAWCB8IBQpDdXN0b21lcklEHwkFCkN1c3RvbWVySUQfCgUKQ3VzdG9tZXJJRB8LaDwrAAQBABYIHwgFCkVtcGxveWVlSUQfCQUKRW1wbG95ZWVJRB8KBQpFbXBsb3llZUlEHwtoPCsABAEAFggfCAUJT3JkZXJEYXRlHwkFCU9yZGVyRGF0ZR8KBQlPcmRlckRhdGUfC2g8KwAEAQAWCB8IBQxSZXF1aXJlZERhdGUfCQUMUmVxdWlyZWREYXRlHwoFDFJlcXVpcmVkRGF0ZR8LaDwrAAQBABYIHwgFC1NoaXBwZWREYXRlHwkFC1NoaXBwZWREYXRlHwoFC1NoaXBwZWREYXRlHwtoPCsABAEAFggfCAUHU2hpcFZpYR8JBQdTaGlwVmlhHwoFB1NoaXBWaWEfC2g8KwAEAQAWCB8IBQdGcmVpZ2h0HwkFB0ZyZWlnaHQfCgUHRnJlaWdodB8LaDwrAAQBABYIHwgFCFNoaXBOYW1lHwkFCFNoaXBOYW1lHwoFCFNoaXBOYW1lHwtoPCsABAEAFggfCAULU2hpcEFkZHJlc3MfCQULU2hpcEFkZHJlc3MfCgULU2hpcEFkZHJlc3MfC2g8KwAEAQAWCB8IBQhTaGlwQ2l0eR8JBQhTaGlwQ2l0eR8KBQhTaGlwQ2l0eR8LaDwrAAQBABYIHwgFClNoaXBSZWdpb24fCQUKU2hpcFJlZ2lvbh8KBQpTaGlwUmVnaW9uHwtoPCsABAEAFggfCAUOU2hpcFBvc3RhbENvZGUfCQUO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" />
<script type="text/javascript">
<!--
var theForm = document.forms['Form1'];
if (!theForm) {
theForm = document.Form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>
<script language=JavaScript src=ScrollingGrid.js></script>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWMQKLl+XgBQKyuN+/BQKxuN+/BQK0uN+/BQKzuN+/BQK2uN+/BQK1uN+/BQK4uN+/BQK3uN+/BQKquN+/BQKpuN+/BQKxuJ/BBQKxuJvBBQKxuJfBBQKxuJPBBQL1/q2/DwL1/qm/DwL1/qW/DwL1/qG/DwL1/p2/DwL1/pm/DwL1/pW/DwL1/pG/DwL1/o2/DwLLyonXAQK0+ZbpCgK0+ZrpCgK0+Y7pCgK0+ZLpCgK0+YbpCgK0+YrpCgK0+f7oCgK0+YLpCgK0+bbpCgK0+brpCgKI5/fBCQLt/dmsDwLSlLyXBQK3q56CCwLQmYHxDwK1sOPbBQKax8XGCwLXp5bbAgK8vvjFCAKh1dqwDgKG7LybBALDzI2wCwKo4++aAQLQmcHZDT7UZbw1cEbPbG0HgNXx9xDp7NZD" />
Variable width & height ScrollingGrid within a table. Control is set to update the last scroll position on postback.<br>
<br>
<table id=sdd name=ScrollingGrid style='width:100%; table-layout:fixed' cellpadding=0 cellspacing=0 border=0><tr><td>
<div id=sdd$divHdr style='overflow:hidden;margin-right:17px;'>
<table cellpadding=0 cellspacing=0 id=sdd$headerCntr><tr><td><table id=sdd$tblHdr border='0' cellpadding='2' cellspacing='0' style='border-collapse:collapse;'> <tr></tr></table></td></tr></table>
</div>
<div id=sdd$divContent style='height:190px;overflow:scroll;' onscroll='updateScroll(this, "sdd")'><table cellpadding=0 cellspacing=0 id=sdd$contentCntr><tr><td>
<table cellspacing="0" cellpadding="2" border="0" id="Grid2" style="border-width:0px;border-collapse:collapse;">
<tr style="color:White;background-color:Red;font-weight:bold;">
<td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl0','')" style="color:White;">OrderID</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl1','')" style="color:White;">CustomerID</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl2','')" style="color:White;">EmployeeID</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl3','')" style="color:White;">OrderDate</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl4','')" style="color:White;">RequiredDate</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl5','')" style="color:White;">ShippedDate</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl6','')" style="color:White;">ShipVia</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl7','')" style="color:White;">Freight</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl8','')" style="color:White;">ShipName</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl9','')" style="color:White;">ShipAddress</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl10','')" style="color:White;">ShipCity</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl11','')" style="color:White;">ShipRegion</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl12','')" style="color:White;">ShipPostalCode</a></td><td><a href="javascript:__doPostBack('Grid2$_ctl2$_ctl13','')" style="color:White;">ShipCountry</a></td>
</tr><tr style="background-color:#FEFEFE;">
<td>10248</td><td>VINET</td><td>5</td><td>1996/07/04 12:00:00 AM</td><td>1996/08/01 12:00:00 AM</td><td>1996/07/16 12:00:00 AM</td><td>3</td><td>32.38</td><td>Vins et alcools Chevalier</td><td>59 rue de l'Abbaye</td><td>Reims</td><td> </td><td>51100</td><td>France</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10249</td><td>TOMSP</td><td>6</td><td>1996/07/05 12:00:00 AM</td><td>1996/08/16 12:00:00 AM</td><td>1996/07/10 12:00:00 AM</td><td>1</td><td>11.61</td><td>Toms Spezialitäten</td><td>Luisenstr. 48</td><td>Münster</td><td> </td><td>44087</td><td>Germany</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10250</td><td>HANAR</td><td>4</td><td>1996/07/08 12:00:00 AM</td><td>1996/08/05 12:00:00 AM</td><td>1996/07/12 12:00:00 AM</td><td>2</td><td>65.83</td><td>Hanari Carnes</td><td>Rua do Paço, 67</td><td>Rio de Janeiro</td><td>RJ</td><td>05454-876</td><td>Brazil</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10251</td><td>VICTE</td><td>3</td><td>1996/07/08 12:00:00 AM</td><td>1996/08/05 12:00:00 AM</td><td>1996/07/15 12:00:00 AM</td><td>1</td><td>41.34</td><td>Victuailles en stock</td><td>2, rue du Commerce</td><td>Lyon</td><td> </td><td>69004</td><td>France</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10252</td><td>SUPRD</td><td>4</td><td>1996/07/09 12:00:00 AM</td><td>1996/08/06 12:00:00 AM</td><td>1996/07/11 12:00:00 AM</td><td>2</td><td>51.3</td><td>Suprêmes délices</td><td>Boulevard Tirou, 255</td><td>Charleroi</td><td> </td><td>B-6000</td><td>Belgium</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10253</td><td>HANAR</td><td>3</td><td>1996/07/10 12:00:00 AM</td><td>1996/07/24 12:00:00 AM</td><td>1996/07/16 12:00:00 AM</td><td>2</td><td>58.17</td><td>Hanari Carnes</td><td>Rua do Paço, 67</td><td>Rio de Janeiro</td><td>RJ</td><td>05454-876</td><td>Brazil</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10254</td><td>CHOPS</td><td>5</td><td>1996/07/11 12:00:00 AM</td><td>1996/08/08 12:00:00 AM</td><td>1996/07/23 12:00:00 AM</td><td>2</td><td>22.98</td><td>Chop-suey Chinese</td><td>Hauptstr. 31</td><td>Bern</td><td> </td><td>3012</td><td>Switzerland</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10255</td><td>RICSU</td><td>9</td><td>1996/07/12 12:00:00 AM</td><td>1996/08/09 12:00:00 AM</td><td>1996/07/15 12:00:00 AM</td><td>3</td><td>148.33</td><td>Richter Supermarkt</td><td>Starenweg 5</td><td>Genève</td><td> </td><td>1204</td><td>Switzerland</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10256</td><td>WELLI</td><td>3</td><td>1996/07/15 12:00:00 AM</td><td>1996/08/12 12:00:00 AM</td><td>1996/07/17 12:00:00 AM</td><td>2</td><td>13.97</td><td>Wellington Importadora</td><td>Rua do Mercado, 12</td><td>Resende</td><td>SP</td><td>08737-363</td><td>Brazil</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10257</td><td>HILAA</td><td>4</td><td>1996/07/16 12:00:00 AM</td><td>1996/08/13 12:00:00 AM</td><td>1996/07/22 12:00:00 AM</td><td>3</td><td>81.91</td><td>HILARION-Abastos</td><td>Carrera 22 con Ave. Carlos Soublette #8-35</td><td>San Cristóbal</td><td>Táchira</td><td>5022</td><td>Venezuela</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10258</td><td>ERNSH</td><td>1</td><td>1996/07/17 12:00:00 AM</td><td>1996/08/14 12:00:00 AM</td><td>1996/07/23 12:00:00 AM</td><td>1</td><td>140.51</td><td>Ernst Handel</td><td>Kirchgasse 6</td><td>Graz</td><td> </td><td>8010</td><td>Austria</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10259</td><td>CENTC</td><td>4</td><td>1996/07/18 12:00:00 AM</td><td>1996/08/15 12:00:00 AM</td><td>1996/07/25 12:00:00 AM</td><td>3</td><td>3.25</td><td>Centro comercial Moctezuma</td><td>Sierras de Granada 9993</td><td>México D.F.</td><td> </td><td>05022</td><td>Mexico</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10260</td><td>OTTIK</td><td>4</td><td>1996/07/19 12:00:00 AM</td><td>1996/08/16 12:00:00 AM</td><td>1996/07/29 12:00:00 AM</td><td>1</td><td>55.09</td><td>Ottilies Käseladen</td><td>Mehrheimerstr. 369</td><td>Köln</td><td> </td><td>50739</td><td>Germany</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10261</td><td>QUEDE</td><td>4</td><td>1996/07/19 12:00:00 AM</td><td>1996/08/16 12:00:00 AM</td><td>1996/07/30 12:00:00 AM</td><td>2</td><td>3.05</td><td>Que Delícia</td><td>Rua da Panificadora, 12</td><td>Rio de Janeiro</td><td>RJ</td><td>02389-673</td><td>Brazil</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10262</td><td>RATTC</td><td>8</td><td>1996/07/22 12:00:00 AM</td><td>1996/08/19 12:00:00 AM</td><td>1996/07/25 12:00:00 AM</td><td>3</td><td>48.29</td><td>Rattlesnake Canyon Grocery</td><td>2817 Milton Dr.</td><td>Albuquerque</td><td>NM</td><td>87110</td><td>USA</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10263</td><td>ERNSH</td><td>9</td><td>1996/07/23 12:00:00 AM</td><td>1996/08/20 12:00:00 AM</td><td>1996/07/31 12:00:00 AM</td><td>3</td><td>146.06</td><td>Ernst Handel</td><td>Kirchgasse 6</td><td>Graz</td><td> </td><td>8010</td><td>Austria</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10264</td><td>FOLKO</td><td>6</td><td>1996/07/24 12:00:00 AM</td><td>1996/08/21 12:00:00 AM</td><td>1996/08/23 12:00:00 AM</td><td>3</td><td>3.67</td><td>Folk och fä HB</td><td>Åkergatan 24</td><td>Bräcke</td><td> </td><td>S-844 67</td><td>Sweden</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10265</td><td>BLONP</td><td>2</td><td>1996/07/25 12:00:00 AM</td><td>1996/08/22 12:00:00 AM</td><td>1996/08/12 12:00:00 AM</td><td>1</td><td>55.28</td><td>Blondel père et fils</td><td>24, place Kléber</td><td>Strasbourg</td><td> </td><td>67000</td><td>France</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10266</td><td>WARTH</td><td>3</td><td>1996/07/26 12:00:00 AM</td><td>1996/09/06 12:00:00 AM</td><td>1996/07/31 12:00:00 AM</td><td>3</td><td>25.73</td><td>Wartian Herkku</td><td>Torikatu 38</td><td>Oulu</td><td> </td><td>90110</td><td>Finland</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10267</td><td>FRANK</td><td>4</td><td>1996/07/29 12:00:00 AM</td><td>1996/08/26 12:00:00 AM</td><td>1996/08/06 12:00:00 AM</td><td>1</td><td>208.58</td><td>Frankenversand</td><td>Berliner Platz 43</td><td>München</td><td> </td><td>80805</td><td>Germany</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10268</td><td>GROSR</td><td>8</td><td>1996/07/30 12:00:00 AM</td><td>1996/08/27 12:00:00 AM</td><td>1996/08/02 12:00:00 AM</td><td>3</td><td>66.29</td><td>GROSELLA-Restaurante</td><td>5ª Ave. Los Palos Grandes</td><td>Caracas</td><td>DF</td><td>1081</td><td>Venezuela</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10269</td><td>WHITC</td><td>5</td><td>1996/07/31 12:00:00 AM</td><td>1996/08/14 12:00:00 AM</td><td>1996/08/09 12:00:00 AM</td><td>1</td><td>4.56</td><td>White Clover Markets</td><td>1029 - 12th Ave. S.</td><td>Seattle</td><td>WA</td><td>98124</td><td>USA</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10270</td><td>WARTH</td><td>1</td><td>1996/08/01 12:00:00 AM</td><td>1996/08/29 12:00:00 AM</td><td>1996/08/02 12:00:00 AM</td><td>1</td><td>136.54</td><td>Wartian Herkku</td><td>Torikatu 38</td><td>Oulu</td><td> </td><td>90110</td><td>Finland</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10271</td><td>SPLIR</td><td>6</td><td>1996/08/01 12:00:00 AM</td><td>1996/08/29 12:00:00 AM</td><td>1996/08/30 12:00:00 AM</td><td>2</td><td>4.54</td><td>Split Rail Beer & Ale</td><td>P.O. Box 555</td><td>Lander</td><td>WY</td><td>82520</td><td>USA</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10272</td><td>RATTC</td><td>6</td><td>1996/08/02 12:00:00 AM</td><td>1996/08/30 12:00:00 AM</td><td>1996/08/06 12:00:00 AM</td><td>2</td><td>98.03</td><td>Rattlesnake Canyon Grocery</td><td>2817 Milton Dr.</td><td>Albuquerque</td><td>NM</td><td>87110</td><td>USA</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10273</td><td>QUICK</td><td>3</td><td>1996/08/05 12:00:00 AM</td><td>1996/09/02 12:00:00 AM</td><td>1996/08/12 12:00:00 AM</td><td>3</td><td>76.07</td><td>QUICK-Stop</td><td>Taucherstraße 10</td><td>Cunewalde</td><td> </td><td>01307</td><td>Germany</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10274</td><td>VINET</td><td>6</td><td>1996/08/06 12:00:00 AM</td><td>1996/09/03 12:00:00 AM</td><td>1996/08/16 12:00:00 AM</td><td>1</td><td>6.01</td><td>Vins et alcools Chevalier</td><td>59 rue de l'Abbaye</td><td>Reims</td><td> </td><td>51100</td><td>France</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10275</td><td>MAGAA</td><td>1</td><td>1996/08/07 12:00:00 AM</td><td>1996/09/04 12:00:00 AM</td><td>1996/08/09 12:00:00 AM</td><td>1</td><td>26.93</td><td>Magazzini Alimentari Riuniti</td><td>Via Ludovico il Moro 22</td><td>Bergamo</td><td> </td><td>24100</td><td>Italy</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10276</td><td>TORTU</td><td>8</td><td>1996/08/08 12:00:00 AM</td><td>1996/08/22 12:00:00 AM</td><td>1996/08/14 12:00:00 AM</td><td>3</td><td>13.84</td><td>Tortuga Restaurante</td><td>Avda. Azteca 123</td><td>México D.F.</td><td> </td><td>05033</td><td>Mexico</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10277</td><td>MORGK</td><td>2</td><td>1996/08/09 12:00:00 AM</td><td>1996/09/06 12:00:00 AM</td><td>1996/08/13 12:00:00 AM</td><td>3</td><td>125.77</td><td>Morgenstern Gesundkost</td><td>Heerstr. 22</td><td>Leipzig</td><td> </td><td>04179</td><td>Germany</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10278</td><td>BERGS</td><td>8</td><td>1996/08/12 12:00:00 AM</td><td>1996/09/09 12:00:00 AM</td><td>1996/08/16 12:00:00 AM</td><td>2</td><td>92.69</td><td>Berglunds snabbköp</td><td>Berguvsvägen 8</td><td>Luleå</td><td> </td><td>S-958 22</td><td>Sweden</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10279</td><td>LEHMS</td><td>8</td><td>1996/08/13 12:00:00 AM</td><td>1996/09/10 12:00:00 AM</td><td>1996/08/16 12:00:00 AM</td><td>2</td><td>25.83</td><td>Lehmanns Marktstand</td><td>Magazinweg 7</td><td>Frankfurt a.M.</td><td> </td><td>60528</td><td>Germany</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10280</td><td>BERGS</td><td>2</td><td>1996/08/14 12:00:00 AM</td><td>1996/09/11 12:00:00 AM</td><td>1996/09/12 12:00:00 AM</td><td>1</td><td>8.98</td><td>Berglunds snabbköp</td><td>Berguvsvägen 8</td><td>Luleå</td><td> </td><td>S-958 22</td><td>Sweden</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10281</td><td>ROMEY</td><td>4</td><td>1996/08/14 12:00:00 AM</td><td>1996/08/28 12:00:00 AM</td><td>1996/08/21 12:00:00 AM</td><td>1</td><td>2.94</td><td>Romero y tomillo</td><td>Gran Vía, 1</td><td>Madrid</td><td> </td><td>28001</td><td>Spain</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10282</td><td>ROMEY</td><td>4</td><td>1996/08/15 12:00:00 AM</td><td>1996/09/12 12:00:00 AM</td><td>1996/08/21 12:00:00 AM</td><td>1</td><td>12.69</td><td>Romero y tomillo</td><td>Gran Vía, 1</td><td>Madrid</td><td> </td><td>28001</td><td>Spain</td>
</tr><tr style="color:White;background-color:Silver;">
<td><span>1</span> <a href="javascript:__doPostBack('Grid2$_ctl39$_ctl1','')" style="color:White;">2</a> <a href="javascript:__doPostBack('Grid2$_ctl39$_ctl2','')" style="color:White;">3</a> <a href="javascript:__doPostBack('Grid2$_ctl39$_ctl3','')" style="color:White;">4</a> <a href="javascript:__doPostBack('Grid2$_ctl39$_ctl4','')" style="color:White;">5</a> <a href="javascript:__doPostBack('Grid2$_ctl39$_ctl5','')" style="color:White;">6</a> <a href="javascript:__doPostBack('Grid2$_ctl39$_ctl6','')" style="color:White;">7</a> <a href="javascript:__doPostBack('Grid2$_ctl39$_ctl7','')" style="color:White;">8</a> <a href="javascript:__doPostBack('Grid2$_ctl39$_ctl8','')" style="color:White;">9</a> <a href="javascript:__doPostBack('Grid2$_ctl39$_ctl9','')" style="color:White;">10</a> <a href="javascript:__doPostBack('Grid2$_ctl39$_ctl10','')" style="color:White;">...</a></td>
</tr>
</table>
</td></tr></table>
</div>
<input type=hidden name=sdd$hdnScrollPos id=sdd$hdnScrollPos>
<table id=sdd$tblPager cellpadding=2 cellspacing=0 style='width:100%;'> <tr></tr></table>
<script language=javascript>
<!--
setTimeout("initScrollingGrid('sdd', 'Grid2', true)", 50)
//--></script></td></tr></table>
<script language=javascript>
<!--
setTimeout("sg1_updateHeight()", 100)
//--></script>
<br>
ScrollingGrid within a User control.<br>
<table id=DemoControl1_sg1 name=ScrollingGrid style='width:100%; table-layout:fixed' cellpadding=0 cellspacing=0 border=0><tr><td>
<div id=DemoControl1_sg1$divHdr style='overflow:hidden;'>
<table cellpadding=0 cellspacing=0 id=DemoControl1_sg1$headerCntr><tr><td><table id=DemoControl1_sg1$tblHdr border='0' cellpadding='5' cellspacing='1' > <tr></tr></table></td></tr></table>
</div>
<div id=DemoControl1_sg1$divContent style='height:140px;overflow:scroll;' onscroll='updateScroll(this, "DemoControl1_sg1")'><table cellpadding=0 cellspacing=0 id=DemoControl1_sg1$contentCntr><tr><td>
<table cellspacing="1" cellpadding="5" border="0" id="DemoControl1_Grid2" style="border-width:0px;">
<tr style="color:White;background-color:Fuchsia;font-weight:bold;">
<td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl0','')" style="color:White;">OrderID</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl1','')" style="color:White;">CustomerID</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl2','')" style="color:White;">EmployeeID</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl3','')" style="color:White;">OrderDate</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl4','')" style="color:White;">RequiredDate</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl5','')" style="color:White;">ShippedDate</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl6','')" style="color:White;">ShipVia</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl7','')" style="color:White;">Freight</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl8','')" style="color:White;">ShipName</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl9','')" style="color:White;">ShipAddress</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl10','')" style="color:White;">ShipCity</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl11','')" style="color:White;">ShipRegion</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl12','')" style="color:White;">ShipPostalCode</a></td><td><a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl2$_ctl13','')" style="color:White;">ShipCountry</a></td>
</tr><tr style="background-color:#FEFEFE;">
<td>10248</td><td>VINET</td><td>5</td><td>1996/07/04 12:00:00 AM</td><td>1996/08/01 12:00:00 AM</td><td>1996/07/16 12:00:00 AM</td><td>3</td><td>32.38</td><td>Vins et alcools Chevalier</td><td>59 rue de l'Abbaye</td><td>Reims</td><td> </td><td>51100</td><td>France</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10249</td><td>TOMSP</td><td>6</td><td>1996/07/05 12:00:00 AM</td><td>1996/08/16 12:00:00 AM</td><td>1996/07/10 12:00:00 AM</td><td>1</td><td>11.61</td><td>Toms Spezialitäten</td><td>Luisenstr. 48</td><td>Münster</td><td> </td><td>44087</td><td>Germany</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10250</td><td>HANAR</td><td>4</td><td>1996/07/08 12:00:00 AM</td><td>1996/08/05 12:00:00 AM</td><td>1996/07/12 12:00:00 AM</td><td>2</td><td>65.83</td><td>Hanari Carnes</td><td>Rua do Paço, 67</td><td>Rio de Janeiro</td><td>RJ</td><td>05454-876</td><td>Brazil</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10251</td><td>VICTE</td><td>3</td><td>1996/07/08 12:00:00 AM</td><td>1996/08/05 12:00:00 AM</td><td>1996/07/15 12:00:00 AM</td><td>1</td><td>41.34</td><td>Victuailles en stock</td><td>2, rue du Commerce</td><td>Lyon</td><td> </td><td>69004</td><td>France</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10252</td><td>SUPRD</td><td>4</td><td>1996/07/09 12:00:00 AM</td><td>1996/08/06 12:00:00 AM</td><td>1996/07/11 12:00:00 AM</td><td>2</td><td>51.3</td><td>Suprêmes délices</td><td>Boulevard Tirou, 255</td><td>Charleroi</td><td> </td><td>B-6000</td><td>Belgium</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10253</td><td>HANAR</td><td>3</td><td>1996/07/10 12:00:00 AM</td><td>1996/07/24 12:00:00 AM</td><td>1996/07/16 12:00:00 AM</td><td>2</td><td>58.17</td><td>Hanari Carnes</td><td>Rua do Paço, 67</td><td>Rio de Janeiro</td><td>RJ</td><td>05454-876</td><td>Brazil</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10254</td><td>CHOPS</td><td>5</td><td>1996/07/11 12:00:00 AM</td><td>1996/08/08 12:00:00 AM</td><td>1996/07/23 12:00:00 AM</td><td>2</td><td>22.98</td><td>Chop-suey Chinese</td><td>Hauptstr. 31</td><td>Bern</td><td> </td><td>3012</td><td>Switzerland</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10255</td><td>RICSU</td><td>9</td><td>1996/07/12 12:00:00 AM</td><td>1996/08/09 12:00:00 AM</td><td>1996/07/15 12:00:00 AM</td><td>3</td><td>148.33</td><td>Richter Supermarkt</td><td>Starenweg 5</td><td>Genève</td><td> </td><td>1204</td><td>Switzerland</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10256</td><td>WELLI</td><td>3</td><td>1996/07/15 12:00:00 AM</td><td>1996/08/12 12:00:00 AM</td><td>1996/07/17 12:00:00 AM</td><td>2</td><td>13.97</td><td>Wellington Importadora</td><td>Rua do Mercado, 12</td><td>Resende</td><td>SP</td><td>08737-363</td><td>Brazil</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10257</td><td>HILAA</td><td>4</td><td>1996/07/16 12:00:00 AM</td><td>1996/08/13 12:00:00 AM</td><td>1996/07/22 12:00:00 AM</td><td>3</td><td>81.91</td><td>HILARION-Abastos</td><td>Carrera 22 con Ave. Carlos Soublette #8-35</td><td>San Cristóbal</td><td>Táchira</td><td>5022</td><td>Venezuela</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10258</td><td>ERNSH</td><td>1</td><td>1996/07/17 12:00:00 AM</td><td>1996/08/14 12:00:00 AM</td><td>1996/07/23 12:00:00 AM</td><td>1</td><td>140.51</td><td>Ernst Handel</td><td>Kirchgasse 6</td><td>Graz</td><td> </td><td>8010</td><td>Austria</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10259</td><td>CENTC</td><td>4</td><td>1996/07/18 12:00:00 AM</td><td>1996/08/15 12:00:00 AM</td><td>1996/07/25 12:00:00 AM</td><td>3</td><td>3.25</td><td>Centro comercial Moctezuma</td><td>Sierras de Granada 9993</td><td>México D.F.</td><td> </td><td>05022</td><td>Mexico</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10260</td><td>OTTIK</td><td>4</td><td>1996/07/19 12:00:00 AM</td><td>1996/08/16 12:00:00 AM</td><td>1996/07/29 12:00:00 AM</td><td>1</td><td>55.09</td><td>Ottilies Käseladen</td><td>Mehrheimerstr. 369</td><td>Köln</td><td> </td><td>50739</td><td>Germany</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10261</td><td>QUEDE</td><td>4</td><td>1996/07/19 12:00:00 AM</td><td>1996/08/16 12:00:00 AM</td><td>1996/07/30 12:00:00 AM</td><td>2</td><td>3.05</td><td>Que Delícia</td><td>Rua da Panificadora, 12</td><td>Rio de Janeiro</td><td>RJ</td><td>02389-673</td><td>Brazil</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10262</td><td>RATTC</td><td>8</td><td>1996/07/22 12:00:00 AM</td><td>1996/08/19 12:00:00 AM</td><td>1996/07/25 12:00:00 AM</td><td>3</td><td>48.29</td><td>Rattlesnake Canyon Grocery</td><td>2817 Milton Dr.</td><td>Albuquerque</td><td>NM</td><td>87110</td><td>USA</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10263</td><td>ERNSH</td><td>9</td><td>1996/07/23 12:00:00 AM</td><td>1996/08/20 12:00:00 AM</td><td>1996/07/31 12:00:00 AM</td><td>3</td><td>146.06</td><td>Ernst Handel</td><td>Kirchgasse 6</td><td>Graz</td><td> </td><td>8010</td><td>Austria</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10264</td><td>FOLKO</td><td>6</td><td>1996/07/24 12:00:00 AM</td><td>1996/08/21 12:00:00 AM</td><td>1996/08/23 12:00:00 AM</td><td>3</td><td>3.67</td><td>Folk och fä HB</td><td>Åkergatan 24</td><td>Bräcke</td><td> </td><td>S-844 67</td><td>Sweden</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10265</td><td>BLONP</td><td>2</td><td>1996/07/25 12:00:00 AM</td><td>1996/08/22 12:00:00 AM</td><td>1996/08/12 12:00:00 AM</td><td>1</td><td>55.28</td><td>Blondel père et fils</td><td>24, place Kléber</td><td>Strasbourg</td><td> </td><td>67000</td><td>France</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10266</td><td>WARTH</td><td>3</td><td>1996/07/26 12:00:00 AM</td><td>1996/09/06 12:00:00 AM</td><td>1996/07/31 12:00:00 AM</td><td>3</td><td>25.73</td><td>Wartian Herkku</td><td>Torikatu 38</td><td>Oulu</td><td> </td><td>90110</td><td>Finland</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10267</td><td>FRANK</td><td>4</td><td>1996/07/29 12:00:00 AM</td><td>1996/08/26 12:00:00 AM</td><td>1996/08/06 12:00:00 AM</td><td>1</td><td>208.58</td><td>Frankenversand</td><td>Berliner Platz 43</td><td>München</td><td> </td><td>80805</td><td>Germany</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10268</td><td>GROSR</td><td>8</td><td>1996/07/30 12:00:00 AM</td><td>1996/08/27 12:00:00 AM</td><td>1996/08/02 12:00:00 AM</td><td>3</td><td>66.29</td><td>GROSELLA-Restaurante</td><td>5ª Ave. Los Palos Grandes</td><td>Caracas</td><td>DF</td><td>1081</td><td>Venezuela</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10269</td><td>WHITC</td><td>5</td><td>1996/07/31 12:00:00 AM</td><td>1996/08/14 12:00:00 AM</td><td>1996/08/09 12:00:00 AM</td><td>1</td><td>4.56</td><td>White Clover Markets</td><td>1029 - 12th Ave. S.</td><td>Seattle</td><td>WA</td><td>98124</td><td>USA</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10270</td><td>WARTH</td><td>1</td><td>1996/08/01 12:00:00 AM</td><td>1996/08/29 12:00:00 AM</td><td>1996/08/02 12:00:00 AM</td><td>1</td><td>136.54</td><td>Wartian Herkku</td><td>Torikatu 38</td><td>Oulu</td><td> </td><td>90110</td><td>Finland</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10271</td><td>SPLIR</td><td>6</td><td>1996/08/01 12:00:00 AM</td><td>1996/08/29 12:00:00 AM</td><td>1996/08/30 12:00:00 AM</td><td>2</td><td>4.54</td><td>Split Rail Beer & Ale</td><td>P.O. Box 555</td><td>Lander</td><td>WY</td><td>82520</td><td>USA</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10272</td><td>RATTC</td><td>6</td><td>1996/08/02 12:00:00 AM</td><td>1996/08/30 12:00:00 AM</td><td>1996/08/06 12:00:00 AM</td><td>2</td><td>98.03</td><td>Rattlesnake Canyon Grocery</td><td>2817 Milton Dr.</td><td>Albuquerque</td><td>NM</td><td>87110</td><td>USA</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10273</td><td>QUICK</td><td>3</td><td>1996/08/05 12:00:00 AM</td><td>1996/09/02 12:00:00 AM</td><td>1996/08/12 12:00:00 AM</td><td>3</td><td>76.07</td><td>QUICK-Stop</td><td>Taucherstraße 10</td><td>Cunewalde</td><td> </td><td>01307</td><td>Germany</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10274</td><td>VINET</td><td>6</td><td>1996/08/06 12:00:00 AM</td><td>1996/09/03 12:00:00 AM</td><td>1996/08/16 12:00:00 AM</td><td>1</td><td>6.01</td><td>Vins et alcools Chevalier</td><td>59 rue de l'Abbaye</td><td>Reims</td><td> </td><td>51100</td><td>France</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10275</td><td>MAGAA</td><td>1</td><td>1996/08/07 12:00:00 AM</td><td>1996/09/04 12:00:00 AM</td><td>1996/08/09 12:00:00 AM</td><td>1</td><td>26.93</td><td>Magazzini Alimentari Riuniti</td><td>Via Ludovico il Moro 22</td><td>Bergamo</td><td> </td><td>24100</td><td>Italy</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10276</td><td>TORTU</td><td>8</td><td>1996/08/08 12:00:00 AM</td><td>1996/08/22 12:00:00 AM</td><td>1996/08/14 12:00:00 AM</td><td>3</td><td>13.84</td><td>Tortuga Restaurante</td><td>Avda. Azteca 123</td><td>México D.F.</td><td> </td><td>05033</td><td>Mexico</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10277</td><td>MORGK</td><td>2</td><td>1996/08/09 12:00:00 AM</td><td>1996/09/06 12:00:00 AM</td><td>1996/08/13 12:00:00 AM</td><td>3</td><td>125.77</td><td>Morgenstern Gesundkost</td><td>Heerstr. 22</td><td>Leipzig</td><td> </td><td>04179</td><td>Germany</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10278</td><td>BERGS</td><td>8</td><td>1996/08/12 12:00:00 AM</td><td>1996/09/09 12:00:00 AM</td><td>1996/08/16 12:00:00 AM</td><td>2</td><td>92.69</td><td>Berglunds snabbköp</td><td>Berguvsvägen 8</td><td>Luleå</td><td> </td><td>S-958 22</td><td>Sweden</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10279</td><td>LEHMS</td><td>8</td><td>1996/08/13 12:00:00 AM</td><td>1996/09/10 12:00:00 AM</td><td>1996/08/16 12:00:00 AM</td><td>2</td><td>25.83</td><td>Lehmanns Marktstand</td><td>Magazinweg 7</td><td>Frankfurt a.M.</td><td> </td><td>60528</td><td>Germany</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10280</td><td>BERGS</td><td>2</td><td>1996/08/14 12:00:00 AM</td><td>1996/09/11 12:00:00 AM</td><td>1996/09/12 12:00:00 AM</td><td>1</td><td>8.98</td><td>Berglunds snabbköp</td><td>Berguvsvägen 8</td><td>Luleå</td><td> </td><td>S-958 22</td><td>Sweden</td>
</tr><tr style="background-color:#EEEEEE;">
<td>10281</td><td>ROMEY</td><td>4</td><td>1996/08/14 12:00:00 AM</td><td>1996/08/28 12:00:00 AM</td><td>1996/08/21 12:00:00 AM</td><td>1</td><td>2.94</td><td>Romero y tomillo</td><td>Gran Vía, 1</td><td>Madrid</td><td> </td><td>28001</td><td>Spain</td>
</tr><tr style="background-color:#FEFEFE;">
<td>10282</td><td>ROMEY</td><td>4</td><td>1996/08/15 12:00:00 AM</td><td>1996/09/12 12:00:00 AM</td><td>1996/08/21 12:00:00 AM</td><td>1</td><td>12.69</td><td>Romero y tomillo</td><td>Gran Vía, 1</td><td>Madrid</td><td> </td><td>28001</td><td>Spain</td>
</tr><tr style="color:White;background-color:Silver;">
<td><span>1</span> <a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl39$_ctl1','')" style="color:White;">2</a> <a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl39$_ctl2','')" style="color:White;">3</a> <a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl39$_ctl3','')" style="color:White;">4</a> <a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl39$_ctl4','')" style="color:White;">5</a> <a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl39$_ctl5','')" style="color:White;">6</a> <a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl39$_ctl6','')" style="color:White;">7</a> <a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl39$_ctl7','')" style="color:White;">8</a> <a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl39$_ctl8','')" style="color:White;">9</a> <a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl39$_ctl9','')" style="color:White;">10</a> <a href="javascript:__doPostBack('DemoControl1$Grid2$_ctl39$_ctl10','')" style="color:White;">...</a></td>
</tr>
</table>
</td></tr></table>
</div>
<input type=hidden name=DemoControl1_sg1$hdnScrollPos id=DemoControl1_sg1$hdnScrollPos>
<table id=DemoControl1_sg1$tblPager cellpadding=5 cellspacing=1 style='width:100%;'> <tr></tr></table>
<script language=javascript>
<!--
setTimeout("initScrollingGrid('DemoControl1_sg1', 'DemoControl1_Grid2', true)", 50)
//--></script></td></tr></table>
</form>
<br>
<div style="padding:5px; background-color:#eeeeee">
<h1 style="font-size:14px; margin:0">Simple implementation - just wrap the ScrollingGrid control around your existing DataGrid control:</h1>
<br>
<avg:ScrollingGrid ID=sg1 runat=server Width=95% Height=190 HeaderWidthReduction=17><br>
<br>
<asp:DataGrid runat=server ID=Grid2 CellPadding=5 CellSpacing=1<br>
AutoGenerateColumns=True AllowSorting=True AllowPaging=True PageSize=35<br>
OnPageIndexChanged=Grid2_PageIndexChanged OnSortCommand=Grid2_Sort><br>
<HeaderStyle BackColor=red ForeColor=white Font-Bold=True /><br>
<ItemStyle BackColor=#fefefe /><br>
<AlternatingItemStyle BackColor=#eeeeee /><br>
<PagerStyle BackColor=silver ForeColor=White Mode=NumericPages /><br>
</asp:DataGrid><br>
<br>
</avg:ScrollingGrid><br>
</div>
<br><br>
</body>
</html>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Cyber-spy
Fantastic!!!!!
Did as you suggested - remove dthe line and ran it.
FF works 100%.
IE7 displays the page, correctly, but then immediately freezes up and has to be killed off via the Task Manager. Since it's working in IE7 with you, it's obviously something in my configuration. Any thopughts?
Fantastic!!!!!
Did as you suggested - remove dthe line and ran it.
FF works 100%.
IE7 displays the page, correctly, but then immediately freezes up and has to be killed off via the Task Manager. Since it's working in IE7 with you, it's obviously something in my configuration. Any thopughts?
ASKER
An update .....
After attempting to browse in IE, I forgot to kill the attempt off and carried on with other things. After about 15 minutes, the page displayed ... weirdly and behaving strangely...
The first grid displays with an extended scrolbar (see attched jpg) and a left-right scrollbar that doesn't work.
The 2nd grid displays correctly and one can scrioll left/right and up/down, but the scroll bar position marker doesn't move.
After attempting to browse in IE, I forgot to kill the attempt off and carried on with other things. After about 15 minutes, the page displayed ... weirdly and behaving strangely...
The first grid displays with an extended scrolbar (see attched jpg) and a left-right scrollbar that doesn't work.
The 2nd grid displays correctly and one can scrioll left/right and up/down, but the scroll bar position marker doesn't move.
As my page was static HTML page, with nothing being generated on the server, and nothing to react to if I clicked any buttons, I can't recreate these behavioural problems. The static pages did however display correctly in IE7
Before you go any further, you might want to try restarting IIS to make sure there are no stray processes around, and then try loading the page again.
As the removal of that one line would not have caused these problems, I think this is another issue.
Before you go any further, you might want to try restarting IIS to make sure there are no stray processes around, and then try loading the page again.
As the removal of that one line would not have caused these problems, I think this is another issue.
ASKER
I'm not running IIS --- file-based system as my home PC is still on XP Home. Could this be an issue?
I am happy that this issue is now resolved and want to close it off. Can you suggest an appropriate zone for the "hanging up in IE" issue?
I am happy that this issue is now resolved and want to close it off. Can you suggest an appropriate zone for the "hanging up in IE" issue?
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Many thanks for all your efforts! APologies for taking so long to close this.
If you have already tried this, could you create a small grid (one column, one row) with nothing else on the page, then upload all the generated HTML to this question, so we can see what is happening?