- 我的问题背景:-
我在VS 2022中进行测试,并使用IIS Express(Chrome)启动网站。在UpdatePanel中的AutoPostBack=true组合框中连锁选择10个以上项目后,页面在成功处理其中9个项目后重置。通过重置我的意思是在Page_PreLoad,当它工作时一切正常,ViewState是空的,并且对于完全相同的页面和完全相同的逻辑,不再示例化控件。
这个问题是在正常执行过程中发现的,但是它需要更多的体操来重现,所以我将测试限制在那个组合框中,并在回调方法中添加了3秒的线程睡眠来模拟。它总是在9之后停止工作,不管回调睡眠多长时间。 - 问题:-
是否有某种限制,以连锁回发的数量与aplog或IIS Express或IIS或任何其他可以做我所描述的?
在网上搜索我发现的一切都不适用;视图状态大小没有增长,只有128字节,池中可用线程和最大线程的数量不会减少超过1,请求的大小也很好。 - 布局和代码:-
我们有一个面板的页面,它创建了一个用户控件的示例列表,其中包含各种PageView中的各种控件,每个示例只显示一个PageView,并且只有一个示例会在面板中出现问题。这不是构建用户控件的最佳方法,但我继承了这个网站。
不幸的是,我不能发布正式的代码,但我会尽量给予尽可能多的代码来说明控件的上下文。
****** The user Control ******
字符串
我只保留了这个问题的页面视图,因为其他的都不相关。
<%@ Control Language="C#" AutoEventWireup="true" %>
<td class='<%# TdClass %>'>
<telerik:RadPageView ID="PV1 runat="server">
some controls
</telerik:RadMultiPage>
<telerik:RadPageView ID="PV2 runat="server">
some controls
</telerik:RadMultiPage>
<telerik:RadPageView ID="PV3" runat="server">
<div style="width: 75px; float: left;">
<asp:UpdatePanel ID="UP1" runat="server" >
<ContentTemplate>
<telerik:RadSearchBox ID="Combo1" runat="server" Width="100%" DataTextField="Descr"
DataValueField="Id" ZIndex="7001" EmptyMessage="- nom -" ShowSelectItem="true"
SelectItemText="" ExpandAnimation-Type="None" CollapseAnimation-Type="None"
AutoPostBack="true" OnSelectedIndexChanged="Combo1_SelectedIndexChanged" >
</stm:STMRadSearchBox>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</telerik:RadPageView>
</telerik:RadMultiPage>
</td>
protected void Combo1_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
Thread.Sleep(3000);
}
****** The panel creating a List of UserControl ******
<%@ Control Language="C#" AutoEventWireup="true" %>
<telerik:RadAjaxPanel ID="IIRAP" runat="server">
<div class="Content">
<span id="tata"></span>
<telerik:RadListView ID="LVI" runat="server" GroupItemCount="3" OnNeedDataSource="LVI_NeedDataSource"
OnItemCreated="LVI_ItemCreated" OnPreRender="LVI_PreRender" Visible="<%# CanViewIntervenant %>">
<LayoutTemplate>
<table>
<tr id="groupPlaceholder" runat="server">
</tr>
</table>
</LayoutTemplate>
<GroupTemplate>
<tr>
<uc:ICTL ID="itemPlaceholder" runat="server" />
</tr>
</GroupTemplate>
<ItemTemplate>
<uc:ICTL ID="ICTL1" runat="server" />
</ItemTemplate>
<EmptyItemTemplate>
<th>
</td>
<td>
</td>
</EmptyItemTemplate>
</telerik:RadListView>
</div>
</telerik:RadAjaxPanel>
****** The page using the panel ******
<%@ Page Language="C#" %>
<%@ Register Src="~/UserControl/Detail.ascx" TagPrefix="uc" TagName="Detail" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MC" runat="server" style="height: 100%">
<div id="divPageContent">
<asp:ValidationSummary ID="ValidationSummarySave" runat="server" ValidationGroup="Save" CssClass="errorSummary" Style="margin-top: 30px;" />
<telerik:RadPanelBar ID="PD1" runat="server" Width="100%" ExpandMode="MultipleExpandedItems">
<Items>
<telerik:RadPanelItem Value='<%# RadPanelItemValue.Intervenants.ToString() %>' Text="Intervenants"
Expanded="true">
<Items>
<telerik:RadPanelItem>
<ItemTemplate>
<uc:DetailID="II1" runat="server" />
</ItemTemplate>
</telerik:RadPanelItem>
</Items>
</telerik:RadPanelItem>
</Items>
</telerik:RadPanelBar>
</div>
</asp:Content>
1条答案
按热度按时间cwtwac6a1#
感谢您的所有输入.是什么让我的想法在正确的方向是,回发必须完成之前发送另一个.我探索了这个想法之前没有找到一个解决方案,这是wierd,因为我一定不是第一个有这样的问题.我相信它在那里,只是从来没有偶然发现它的一些原因.一个解决方案,工作来自一个意想不到的来源,chatGPT的所有地方。以防万一,它可能会帮助别人,虽然我怀疑有更好的解决方案,因为它似乎是一个尴尬的方式来处理这个问题,但在这里:
字符串