У меня проблема с элементом управления ASP AutoCompleteExtender. У меня есть один на моей странице, который работает нормально, но я поместил другой на той же странице, и я не могу заставить его работать. Используя HTTP Analyzer, запрос не запускается, когда я набираю текстовое поле, связанное с ним. У кого-нибудь есть идеи?
Оба вызывают один и тот же веб-сервис с другим параметром ContextKey. Веб-служба не может быть причиной, поскольку она работает в первом случае (DevMgrTxtBox), и даже не вызывается во втором (DevTxtBox). Свойства обоих элементов управления похожи, я просто изменил ID и targetControlID второго.
Код ниже находится в ContentPlaceHolder. Я использую VS2005 с .NET 2.0. AjaxControlToolkit.dll находится в версии 1.0.20229.0.
<ч />
РЕДАКТИРОВАТЬ: решение найдено. Идентификатор не единственная вещь, которая должна быть уникальной, свойство BehaviorID
также должно быть уникальным. Который не был задокументирован.
<tr>
<td>
<asp:Label ID="DevtMgrLbl" runat="server" Text="Development Manager"></asp:Label>
</td>
<td>
<asp:UpdatePanel runat="server" id="devMgrPanel">
<contenttemplate>
<asp:TextBox id="DevMgrTxtBox" runat="server"></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender id="AutoCompleteRole1" runat="server" CompletionSetCount="5" EnableCaching="true" BehaviorID="autoCompleteExtender" CompletionInterval="100" MinimumPrefixLength="2" ServiceMethod="GetRoleList" ServicePath="AutoCompleteRoles.asmx" TargetControlID="DevMgrTxtBox" ContextKey="DM">
</ajaxToolkit:AutoCompleteExtender>
</contenttemplate>
<triggers>
<asp:AsyncPostBackTrigger ControlID="DevMgrTxtBox" EventName="TextChanged"></asp:AsyncPostBackTrigger>
</triggers>
</asp:UpdatePanel>
</td>
</tr>
<tr>
<td>
<asp:Label ID="DevLbl" runat="server" Text="Developer"></asp:Label>
</td>
<td>
<asp:UpdatePanel runat="server" id="devPanel">
<contenttemplate>
<asp:TextBox ID="DevTxtBox" runat="server"></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender id="AutoCompleteRole2" runat="server" CompletionSetCount="5" EnableCaching="true" BehaviorID="autoCompleteExtender" CompletionInterval="100" MinimumPrefixLength="2" ServiceMethod="GetRoleList" ServicePath="AutoCompleteRoles.asmx" TargetControlID="DevTxtBox" ContextKey="DEV">
</ajaxToolkit:AutoCompleteExtender>
</contenttemplate>
<triggers>
<asp:AsyncPostBackTrigger ControlID="DevTxtBox" EventName="TextChanged"></asp:AsyncPostBackTrigger>
</triggers>
</asp:UpdatePanel>
</td>
</tr>