很明显,控件和扩展器位于同一个更新面板中。然而,“扩展程序不能在与其扩展的控件不同的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:  
<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>
答案 0 :(得分:1)
创建一个ID为“popup”的面板(尽管如此,它可能会像你一样)。在这个面板中放置任何按钮或任何你想要的,这将是你的弹出菜单。将PopupControlID设置为“popup”。
您的TargetControlID应该是您希望manu弹出的面板的ID(extensionActionHoverMenu?)。
答案 1 :(得分:0)
PopupControlID
和TargetControlID
是相同的。您的TargetControlID
应该是其他表单元素。
- TargetControlID - 扩展程序所针对的控件。什么时候 鼠标光标在此控件上方, 悬停菜单弹出窗口将是 显示。
- PopupControlID - 鼠标结束时显示的控件的ID 目标控制。在这种情况下,它是 只是一个带有两个链接的简单面板:
答案 2 :(得分:0)
有时它不是关于updatepanel而是关于工具包的其他项目。 我在使用FilteredTextBoxExtender时收到了此消息。 TargetControlID中定义的控件位于不同的updatepanel中。