I have a large DropDownList that is very slow when it's in an
UpdatePanel. The initial loading of the page is not slow, only the
PostBack is slow. When I do not use the UpdatePanel PostBacks are
very fast. I have EnableViewState set to false for this DropDownBox.
Using the debugger I see that the Code Behind is entered quickly. The
slowdown happens sometime after OnUnload occurs. I think it happens
when refreshing the page.
To duplicate the problem create a page with a ScriptManager and
UpdatePanel. Add a DropDownList and Button to the UpdatePanel. Here
is the code:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="DropDownList1" runat="server"
EnableViewState="False">
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Button" /
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
In Page_load add the code below to add 6,000 rows to the DropDownList:
protected void Page_Load(object sender, EventArgs e)
{
DropDownList1.Items.Clear();
for (int i = 0; i < 6000; i++)
{
DropDownList1.Items.Add("A" + i);
}
}
Run the page and click the button. The PostBack is very slow - about
35 seconds.
Now move the Button outside of the UpdatePanel. This causes the
entire page to refresh when a PostBack is performed. This takes about
2 seconds.
Peter Bromberg [C# MVP] - 01 Feb 2008 16:20 GMT
The only response I can give is that the UpdatePanel is having to use XmlHttp
to marshal a large amount of "string-ified" data over the wire and reassemble
it in the callback to fit your control's needs. There are some situations
where AJAX just doesn't "fit" and this is probably one of them. Either that,
or don't bring back so much data at one time.
-- Peter
Site: http://www.eggheadcafe.com
UnBlog: http://petesbloggerama.blogspot.com
MetaFinder: http://www.blogmetafinder.com
> I have a large DropDownList that is very slow when it's in an
> UpdatePanel. The initial loading of the page is not slow, only the
[quoted text clipped - 47 lines]
> entire page to refresh when a PostBack is performed. This takes about
> 2 seconds.