![](/img/trans.png)
[英]Multiple controls with the same ID 'ddl_Weight' were found. FindControl requires that controls have unique IDs
[英]Multiple controls with the same ID 'xyz' were found. FindControl requires that controls have unique IDs
我的网络应用程序中只有一个aspx页面,其中显示了一些asp.net图表/表格/重复器等。
现在,当用户访问该页面并将其空闲一段时间,然后单击Submit-button或ctrl + F5(refresh)时,随后的异常将随机发生。
找到具有相同ID“ xyz”的多个控件。 FindControl要求控件具有唯一的ID。
事实是它对我页面上的大多数控件(如标签,图表,textBox,scriptManager等)都引发了异常
我无法获取这些随机异常的原因,也无法获取我在代码中做错的事情。
我尚未动态生成任何控件的唯一ID(从背后的代码),并且没有任何ID在页面上重复。
我使用了Ajax控件工具包(7.0.x)。在后面的代码中,我也使用了System.Threading.task来绑定图表/重复器。
我的ASPX文件如下
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Dashboard.aspx.cs" Inherits="Report.Dashboard" %>
<%@ Register Assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<!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 id="Head1" runat="server">
<title>title1</title>
<link href="css/Report.css" rel="stylesheet" type="text/css" />
<script src="Scripts/Report.js" type="text/javascript"></script>
</head>
<body>
<div id="divHeader">
<table class="dataTable">
<tr style="text-align: right; width: 100%;">
<td style="min-width: 75%;">
</td>
<td class="headerUserName">
<asp:Label ID="lblWelcome" runat="server" Style="" Text="Welcome"></asp:Label>
<asp:Label ID="lblUserName" class="userName" runat="server" Text=""></asp:Label>
</td>
</tr>
<tr style="width: 100%;">
<td class="columnWithImage" colspan="2">
<img alt="LOGO" src="images/logo.png" width="259" height="38" />
</td>
</tr>
</table>
</div>
<div id="divMain" class="marginT10">
<div id="divLeftSegment">
</div>
<div id="divImgLoading" class="divModalBackground">
<img id="imgLoading" class="loaderImage" src="images/ajax-loader.gif" alt="" />
</div>
<div id="divFormSegment">
<form id="form1" runat="server">
<div id="divMainSegment">
<asp:ScriptManager ID="smScriptManager" runat="server" EnableViewState="false">
</asp:ScriptManager>
<div id="divQueryHeader">
<table>
<tr>
<td>
<asp:Label ID="lblStartDate" runat="server" Text="Start Date"></asp:Label>
<asp:TextBox ID="txtStartDate" runat="server" ContentEditable="false" Width="125px"></asp:TextBox>
<ajaxToolkit:CalendarExtender ID="cldrStartDate" runat="server" TargetControlID="txtStartDate">
</ajaxToolkit:CalendarExtender>
</td>
<td>
<asp:Label ID="lblEndDate" CssClass="margingL15" runat="server" Text="End Date"></asp:Label>
<asp:TextBox ID="txtEndDate" runat="server" ContentEditable="false" Width="125px"></asp:TextBox>
<ajaxToolkit:CalendarExtender ID="cldrEndDate" runat="server" TargetControlID="txtEndDate">
</ajaxToolkit:CalendarExtender>
</td>
<td>
<asp:Label ID="lblMinTotal" CssClass="margingL15" runat="server" Text="Min. Total Bill"></asp:Label>
<asp:TextBox ID="txtMinTotal" runat="server" Width="125px" onkeypress="return IsOneDecimalPoint(event);"></asp:TextBox>
<ajaxToolkit:FilteredTextBoxExtender ID="FilteredTextBoxExtenderMinTotal" runat="server"
FilterType="Custom" ValidChars="01234567890." TargetControlID="txtMinTotal">
</ajaxToolkit:FilteredTextBoxExtender>
</td>
<td>
<asp:Label ID="lblMaxTotal" CssClass="margingL15" runat="server" Text="Max. Total Bill"></asp:Label>
<asp:TextBox ID="txtMaxTotal" runat="server" Width="125px" onkeypress="return IsOneDecimalPoint(event);"></asp:TextBox>
<ajaxToolkit:FilteredTextBoxExtender ID="FilteredTextBoxExtenderMaxTotal" runat="server"
FilterType="Custom" ValidChars="01234567890." TargetControlID="txtMaxTotal">
</ajaxToolkit:FilteredTextBoxExtender>
</td>
<td>
<asp:Button ID="btnUpdate" runat="server" Text="View" CssClass="margingL15"
Width="100px" OnClick="btnUpdate_Click" OnClientClick="showLoadingImg();" />
</td>
</tr>
</table>
</div>
<div style="height: Auto;">
<div id="div3">
<div id="div4" runat="server">
<table style="width: 98%;">
<tr>
<td>
<asp:Chart ID="chart1" runat="server" Width="500px">
<Series>
<asp:Series ChartType="Pie" Name="series1" IsValueShownAsLabel="true"
XValueMember="Category" YValueMembers="Count">
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="chartArea1">
</asp:ChartArea>
</ChartAreas>
<Legends>
<asp:Legend Name="legend1" Docking="Bottom">
</asp:Legend>
</Legends>
<Titles>
<asp:Title Name="title1" Text="Category">
</asp:Title>
</Titles>
</asp:Chart>
</td>
<td>
<asp:Chart ID="chart2" runat="server" Width="500px">
<Series>
<asp:Series Name="series1" XValueMember="Age" YValueMembers="Count"
ToolTip="#VALY">
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="chartArea1">
</asp:ChartArea>
</ChartAreas>
<Titles>
<asp:Title Name="title1" Text="Age">
</asp:Title>
</Titles>
</asp:Chart>
</td>
</tr>
</table>
</div>
<div id="div5" class="marginT15" runat="server">
<asp:Repeater ID="rpt1" runat="server">
<HeaderTemplate>
<table class="tbl1" rules="all" border="1">
<tr>
<td class="tableColHeader">
Name
</td>
<td class="tableColHeader">
Address
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td class="cellStyle">
<%# Eval("Name")%>
</td>
<td class="tableCellStyle">
<%# Eval("Address")%>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
<div id="div6" runat="server">
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</body>
</html>
我发现的问题是ContinueWith任务中的回调方法。 我删除了所有的continueWith方法,并在Tasks.WaitAll()之后调用它们
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.