Link to home
Start Free TrialLog in
Avatar of ultreya
ultreya

asked on

Page length limit in IE 7 and 8

I have a web page that uses a datalist that is displayed in a formatted table attached to a SQL DB. The total records in the record set is 60. If I use a gridview with only one line per record all 60 records are displayed in IE. If I use the formatted datalist (where each record is 5 lines tall) the total number of individual records displayed is about 25 because each record takes up more vertical space in IE. No formatting is done for page length on the page. Tested on IE7 and XP, IE 8 and Vista and IE 8 on Win 7. All results are the same.
There are over 2.475 records in ths dataset starting ticket numbers at 30006 and going to 54420 at this time. If I test the qry in MS VWD Express 08 I see all the records starting at 30006 and ending at 54420 (remember these are ticket numbers in the DB not record numbers) but point is I see all 2475 records when testing the QRY in MS VWD08. It's a simple QRY and I know it's fine.

When the page is exicuted through IE My first record displayed is 54420 and the last record displayed is 45571. Records between 45571 and 30006 are not displayed. IE doesn't seem to want to display a page that is that long. Here's the code from a clean test page I created this morning. As you can see it's not that complicated.


<%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="TSDportal_printpage" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    </head>
<body>
    <form id="form1" runat="server">
    <div id="hidden2">
    <asp:Label ID="UserName" runat="server" Text="Label"></asp:Label>
    <asp:DropDownList ID="TPAccountID" runat="server" 
            DataSourceID="TPAccountIDSQLdata" DataTextField="TPAccountID" 
            DataValueField="TPAccountID" AutoPostBack="True">
        </asp:DropDownList>
        <asp:SqlDataSource ID="TPAccountIDSQLdata" runat="server" 
            ConnectionString="<%$ ConnectionStrings:TigerpawConnectionString %>" 
            SelectCommand="SELECT [TPAccountID] FROM [TSD_AccountID_View] WHERE ([UserName] = @UserName)">
            <SelectParameters>
                <asp:ControlParameter ControlID="UserName" Name="UserName" 
                    PropertyName="Text" />
            </SelectParameters>
        </asp:SqlDataSource>
    </div>
    <div id="body">
        <table cellpadding="0" cellspacing="0" style="width: 757px">
            <tr>
                <td valign="top">
                    <asp:DataList ID="DataList1" runat="server" DataSourceID="MySOSqlData">
                        <ItemTemplate>
                            SONumber:
                            <asp:Label ID="SONumberLabel" runat="server" Text='<%# Eval("SONumber") %>' />
                            <br />
                            <br />
                        </ItemTemplate>
                    </asp:DataList>
     <div id="hiddeninvoice">
      
      <asp:SqlDataSource ID="MySOSqlData" runat="server" 
                ConnectionString="<%$ ConnectionStrings:TigerpawConnectionString %>" 
             
             SelectCommand="SELECT [SONumber] FROM [TSD_Service_History] WHERE ([AccountID] = @AccountID) ORDER BY [SONumber] DESC">
                <SelectParameters>
                    <asp:ControlParameter ControlID="TPAccountID" Name="AccountID" 
                        PropertyName="SelectedValue" Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>
    </div>  
    
    </td>
    </tr>
  </table>
     
     </div>   
    </form>
   
</body>
</html>

Open in new window

Avatar of abel
abel
Flag of Netherlands image

This is a very interesting one. I know that IE5/6/7 are VERY slow when it comes to large tables. Usually you can quick the pace a bit by using DIVs, as you seem to do. I would reckon that a huge page as you have would still take forever to load, but not loading everything sounds particularly weird..., never encountered that before and have seen pretty stiff pages there.

I'll try to make an HTML test page, after all, what the browser sees in the end is HTML. Maybe you can send in a snippet of the resultant HTML, only three or so repeating records.

Oh, and now that we're at it: I've seen cases before where not all data is displayed because of rendering problems (be it memory wise or render engine wise), checking up on the downloaded source code quickly reveals whether all's there or not.

Btw, does it load correctly in IE6, FF2/3, Op8/9, Kon, Chrome?
Sorry, I have to take that back (the part on the DIV). I see now that you do use a table, but with a long datalist where records are actually separated by <br /><br />.
Mm, maybe I shouldn't have tested it. In FF, it displayed in about 2 or 3 seconds (and I used an imagenary 33694 records, a bit more than you), in IE7, it is still busy (5 minutes now and eating my memory, but slowly).

Killed the process and tried it again. 5000 records, just fine. 10000 records, just fine. All show up. Slow, as compared to others, but they show. This is well over your amount of records. I wonder, can you zip the resulting page and attach it here? Or does it contain private data?

Apparently there's a moment where IE starts choking (my 30,000+ example), but about 2500 it should still be fine and show all.
Avatar of ultreya
ultreya

ASKER

Here's how the text should be formatted: I removed the private data. As you can see the records are about x amount long displayed on the screen and I can only get about 25 records to display in this format. If I change the form and only display 2 lines per record I get all the records.

If I view source I can see all the records.

Thanks for your help.


Service Orders Opened This Month  
_______________________________________________________________________________________________
Account
Address
City state zip
Contact Name
Phone

Unit Serviced: HP 4050TN
 SO# 54489      
Ticket#: 387701
Date Opened: 2/17/2009
Time Opened: 4:57 PM
Date Closed:

Serial Number: USBB225510
 ETA's: Web Ticket 22335 ETA 2/19
Status: Part Shipped
SO Type: Contract
Requested By: OscaHelp Desk
Tech. Assigned:
Trouble Reported:
printer pulling multi pages  
Resolution:
02/18/2009 8:00 AM : Need to order pick up roller and sep pad.  
_____________________________________________________________________________________________________________________________
Account
Address
City state zip
Contact Name
Phone


Unit Serviced: Item Repair
 SO# 54472      
Ticket#: 387533
Date Opened: 2/16/2009
Time Opened: 12:30 PM
Date Closed: 2/17/2009

Serial Number: USBB221254
 ETA's: Web Ticket 22323
Status: Closed
SO Type: Contract
Requested By:
Tech. Assigned:
Trouble Reported:
printer is clicking when printing.the clicking is coming from around the toner area i think, it prints ok, but and on site visit is needed to resolve the issue  
Resolution:
02/17/2009 10:20 AM : The problem was with a toner cartridge. Need to replace the toner.  
_____________________________________________________________________________________________________________________________Account
Address
City state zip
Contact Name
Phone


Unit Serviced: HP DC7100
 SO# 54470      
Ticket#:
Date Opened: 2/16/2009
Time Opened: 12:16 PM
Date Closed:

Serial Number: 2UA5110FXJ
 ETA's: ETA 2/18 New
Status: Parts On Order
SO Type: Contract
Requested By:
Tech. Assigned:  
Trouble Reported:
burning smell on tower, nothing happens when he pushes in power, no lights no beeps  
Resolution:
02/17/2009 12:00 PM : Replaced the power supply. Tested fine.  
______________________________________________________________________________________________________________________________  
 
 
> If I view source I can see all the records.

Interesting.

But if I see this correctly, you have quite some lines per record. I tried with one line per record. I you have, say, about 20-25 (formatted!) lines per record, you go way beyond what I tested with 30,000+ lines (records).

What I find odd in the whole thing is that if the data is too large, it takes forever to load. Does it take long for you? How long in comparison with FF? What if this really IS a problem and you cannot do much about it based on the limits of IE?

Btw, did you read the other comments of my? If possible, I'd like to see a ZIP of all data, because apparently there's quite a bit more formatting to it. There might be a way to change the formatting so that IE will still load it..., but I doubt it (I have some ideas from the past, but not sure if you will like them).

Btw2: have you thought of paginating your data?
Avatar of ultreya

ASKER

Does it take long for you? About 5 seconds in the network and 10 out side. (Remoting in from my home domain)

How long in comparison with FF? Haven't tested with FF as we are a MS house. (not that it not a bad idea)

What if this really IS a problem and you cannot do much about it based on the limits of IE?
These reports work on our old ASP site. I may have to eliminate the page from the web.
But I can't believe there is a page length limit.

If possible, I'd like to see a ZIP of all data, because apparently there's quite a bit more formatting to it.

Unfortunately I would have to manually edit the records to remove the private info and that is alot of data. I I move the fields from the qry / form then zipped it we would not be testing the same results.

So what I did was created a test page and added lots of breaks in the code to intentionally lengthen the rendered page. (see code) The results is there is NOT a page length restriction. See attached. Something else is going on here.

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="TSDportal_printpage" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
 
   
  
    </head>
<body>
    <form id="form1" runat="server">
    <div id="hidden2">
    <asp:Label ID="UserName" runat="server" Text="Label"></asp:Label>
    <asp:DropDownList ID="TPAccountID" runat="server" 
            DataSourceID="TPAccountIDSQLdata" DataTextField="TPAccountID" 
            DataValueField="TPAccountID" AutoPostBack="True">
        </asp:DropDownList>
        <asp:SqlDataSource ID="TPAccountIDSQLdata" runat="server" 
            ConnectionString="<%$ ConnectionStrings:TigerpawConnectionString %>" 
            SelectCommand="SELECT [TPAccountID] FROM [TSD_AccountID_View] WHERE ([UserName] = @UserName)">
            <SelectParameters>
                <asp:ControlParameter ControlID="UserName" Name="UserName" 
                    PropertyName="Text" />
            </SelectParameters>
        </asp:SqlDataSource>
    </div>
    <div id="body">
        <table cellpadding="0" cellspacing="0" style="width: 757px">
            <tr>
                <td valign="top">
                    <asp:DataList ID="DataList1" runat="server" DataSourceID="MySOSqlData">
                        <ItemTemplate>
                            SONumber:
                            <asp:Label ID="SONumberLabel" runat="server" Text='<%# Eval("SONumber") %>' />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                                                        DateOpened:
                            <asp:Label ID="DateOpenedLabel" runat="server" 
                                Text='<%# Eval("DateOpened") %>' />
                            <br />
                            <br />
                        </ItemTemplate>
                    </asp:DataList>
     <div id="hiddeninvoice">
      
      <asp:SqlDataSource ID="MySOSqlData" runat="server" 
                ConnectionString="<%$ ConnectionStrings:TigerpawConnectionString %>" 
             
             
             SelectCommand="SELECT * FROM [TSD_Service_History] WHERE ([AccountID] = @AccountID) AND (DateOpened &gt;= DATEADD(day, - 30, GETDATE())) ORDER BY [SONumber] DESC">
                <SelectParameters>
                    <asp:ControlParameter ControlID="TPAccountID" Name="AccountID" 
                        PropertyName="SelectedValue" Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>
    </div>  
    
    </td>
    </tr>
  </table>
     
     </div>   
     
     data end
    </form>
   
</body>
</html>

Open in new window

Avatar of ultreya

ASKER

Dang forum doesn't like .rar files...
data.txt
Avatar of ultreya

ASKER

test
Avatar of ultreya

ASKER

Sorry forgot to answer the paging option. These are just data reporst for our clients. I don't what them to run the report, printer the report, go to page two, rinse and repeat.
Ok, got it. I'll check your data. I have to rename to rar?
Avatar of ultreya

ASKER

No It's this forum that will not accept a rar file so I just sent you a text file. I don't use winzip for some odd reason.

Just for fun I replaced the data list / formated table with a gridview and I can display thousands of records without issue.

There has to be something in the code causing this but I've look in my style sheet and can't see a thing.
I tried loading your data but it was only a couple of records and loaded instantly. Have you tried renaming a RAR to ZIP? And you could consider gzip, the open source variant ... ;)

Anyway, I'm a bit surprised you get it going so quickly all of a sudden. Your stylesheet is probably not the issue because I could reproduce your behavior, I only didn't have enough data, but when mimicking it it locked my IE (which is not mimicking, sorry). Still interested in the original problem, where not everything is visible. Is there an online reference I could check that has the original problem still?

Glad you have a resolution so that you can continue working... Always annoying to be blocked by issues that are not in your hands or your fault.
Avatar of ultreya

ASKER

The issue is not really solved I just found away around it. I really need to have my reports all done in the same format.

If we are to go to this next step then we need to go offline and finish via email. I can setup a test DB but the records will be a direct copy of our existing DB and I'm not that comfortable with allowing that kind of access. Please understand we do alot of work with state and local accounts. Granted I'll just kill the account after you were to use it! I'm sure you understand that.

How do you feel about that?
Thanks again BTW
ASKER CERTIFIED SOLUTION
Avatar of abel
abel
Flag of Netherlands image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial