ms ajax hover extender错误“扩展程序不能在与其扩展的控件不同的UpdatePanel中”

时间:2010-09-08 23:49:00

标签: asp.net asp.net-ajax updatepanel

很明显,控件和扩展器位于同一个更新面板中。然而,“扩展程序不能在与其扩展的控件不同的UpdatePanel中”发生错误。

注意:使用它在页面上的UpdatePanel中声明用户控件。这使得用户控件中的UpdatePanel“嵌套”。

以下代码位于Asp.Net UserControl中:

        <asp:TemplateField HeaderStyle-Width="0px">
        <ItemTemplate>
            <asp:UpdatePanel ID="hoverMenuUpdatePanel" runat="server">
                <ContentTemplate>
                    <ajaxtoolkit:HoverMenuExtender ID="extensionActionHoverMenuExtender" runat="server"
                        PopupControlID="extensionActionHoverMenu" PopupPosition="Left" HoverCssClass="popupHover"
                        TargetControlID="extensionActionHoverMenu" OffsetX="5" PopDelay="50" />
                    <asp:Panel ID="extensionActionHoverMenu" runat="server" CssClass="modalDialogPanel"
                        Style="display: none; height: 200px; width: 300px; padding: 5px;">
                        <div style="border-color: #3A362C; padding: 2px; border-right-style: solid; border-right-width: thin;
                            float: left;">
                            <div class="title">
                                Reserve Extension: &nbsp
                                <asp:Label ID="extensionToReserveLabel" runat="server" Text='<%# Eval("ConsolidatedPhoneExtensionPK") %>' />
                            </div>
                            <div id="userType" style="border-style: solid; border-width: 1px; padding: 5px; height: 80px;
                                width: 200px; background-color: #E2DDBA; margin-bottom: 8px;">
                                User Type:
                                <asp:RadioButtonList ID="reservedUserTypeRadioButtonList" runat="server">
                                    <asp:ListItem Selected="true" Text="999/988" Value="Employee" />
                                    <asp:ListItem Text="Other" Value="Other" />
                                </asp:RadioButtonList>
                            </div>
                            <div>
                                Employee No:<asp:TextBox ID="reserveEmployeeNo" runat="server" OnTextChanged="reserveEmployeeNo_TextChanged"
                                    AutoPostBack="true" />
                                <asp:Label ID="employeeNameDisplayLabel" runat="server" />
                                <asp:Label ID="reserveUserMessageAreaLabel" runat="server" />
                            </div>
                        </div>
                        <div>
                            <div>
                                <asp:Button ID="selectButton" runat="server" Text="View" CommandName="Select" Width="75px" />
                            </div>
                            <div>
                                <asp:Button ID="reserveButton" runat="server" Text="Reserve" CommandName="Reserve"
                                    CommandArgument='<%# Eval("ConsolidatedPhoneExtensionPK") %>' Width="75px" />
                            </div>
                        </div>
                    </asp:Panel>
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="reserveEmployeeNo" EventName="TextChanged" />
                </Triggers>
            </asp:UpdatePanel>
        </ItemTemplate>
    </asp:TemplateField>

3 个答案:

答案 0 :(得分:1)

创建一个ID为“popup”的面板(尽管如此,它可能会像你一样)。在这个面板中放置任何按钮或任何你想要的,这将是你的弹出菜单。将PopupControlID设置为“popup”。

您的TargetControlID应该是您希望manu弹出的面板的ID(extensionActionHoverMenu?)。

答案 1 :(得分:0)

PopupControlIDTargetControlID是相同的。您的TargetControlID应该是其他表单元素。

HoverMenu Sample

  
      
  • TargetControlID - 扩展程序所针对的控件。什么时候   鼠标光标在此控件上方,   悬停菜单弹出窗口将是   显示。
  •   
  • PopupControlID - 鼠标结束时显示的控件的ID   目标控制。在这种情况下,它是   只是一个带有两个链接的简单面板:
  •   

答案 2 :(得分:0)

有时它不是关于updatepanel而是关于工具包的其他项目。 我在使用FilteredTextBoxExtender时收到了此消息。 TargetControlID中定义的控件位于不同的updatepanel中。