1

ASP AutoCompleteExtender コントロールに問題があります。自分のページで正常に動作しているページを 1 つ取得しましたが、同じページに別のページを配置しましたが、動作させることができません。HTTP アナライザーを使用すると、関連付けられたテキスト ボックスに入力してもクエリが起動されません。誰かアイデアはありますか?

どちらも、異なる ContextKey パラメーターを使用して同じ Web サービスを呼び出します。Web サービスは最初のケース (DevMgrTxtBox) で機能し、2 番目のケース (DevTxtBox) では呼び出されないため、原因であるとは言えません。両方のコントロールのプロパティは似ています。2 番目の ID と targetControlID を変更しただけです。

以下のコードは ContentPlaceHolder にあります。.NET 2.0 で VS2005 を使用しています。AjaxControlToolkit.dll のバージョンは 1.0.20229.0 です。


編集:解決策が見つかりました。一意である必要があるのは ID だけではなく、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>
4

0 に答える 0