我有一个页面,我试图使用ASP:MultiView和ASP:Menu控件实现一个简单的两个选项卡的tab控件。
我在同一个应用程序的另一个页面上运行得很好,但是由于某些原因,在这个页面上,整个MultiView都被隐藏了。该标记位于浏览器提供的源代码中,但这两个视图中的所有控件都不可见。视图正在占用空间。当我将另一个控件放在MultiView控件下时,它将显示在我预期的位置。
这两个页面之间存在差异。其中有效的是在模式对话框中显示的标准ASP.NET页面。我正在纠结的是一个使用母版页的内容页。
页面上已经有很多标记,但我已经包含了包含整个“Tab控件”的Panel的标记。
我确实尝试过将“Tab控件”从面板中移除,但行为没有任何变化。
任何关于这方面的想法都将不胜感激。
谢谢,道格
<asp:Panel ID="pnlAddressInfo" runat="server" CssClass="PanelVisible">
<asp:Table ID="tblTabControl" runat="server">
<asp:TableRow>
<asp:TableCell>
<asp:Menu
ID="mnuTabControl"
Width="262px"
runat="server"
Orientation="Horizontal"
StaticEnableDefaultPopOutImage="False">
<Items>
<asp:MenuItem ImageUrl="../Images/USAddrSelected.png" Text=" " Value="0" />
<asp:MenuItem ImageUrl="../Images/PFAddrUnselected.png" Text=" " Value="1" />
</Items>
</asp:Menu>
<asp:MultiView
ID="mtvAddressInfo"
runat="server"
ActiveViewIndex="0" >
<asp:View ID="tabUSAddr" runat="server">
<asp:Table ID="tblUSAddrMain" runat="server" width="567px" height="250px" cellpadding=0 cellspacing=0>
<asp:TableRow VerticalAlign="top">
<asp:TableCell CssClass="AddressTabArea" style="width: 567px">
<asp:Table ID="tblUSAddr" runat="server">
<asp:TableRow>
<asp:TableCell>
<asp:Label ID="lstFunctionsAvailable_Label" runat="server" CssClass="StdLabel" Text="Address Line #1" />
</asp:TableCell>
<asp:TableCell>
<asp:TextBox ID="txtUSAddrLine1" runat="server" CssClass="ResizableTextBox" />
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>
<asp:Label ID="txtUSAddrLine2_Label" runat="server" CssClass="StdLabel" Text="Address Line #2" />
</asp:TableCell>
<asp:TableCell>
<asp:TextBox ID="txtUSAddrLine2" runat="server" CssClass="ResizableTextBox" />
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</asp:View>
<asp:View ID="tabUsers" runat="server">
<asp:Table ID="tblPFAddrMain" runat="server" width="567px" height="250px" cellpadding=0 cellspacing=0>
<asp:TableRow VerticalAlign="top">
<asp:TableCell CssClass="RolesEditorTabArea" style="width: 567px">
<asp:Table ID="tblPFAddr" runat="server">
<asp:TableRow>
<asp:TableCell>
<asp:Label ID="txtPFAddrLine1_Label" runat="server" CssClass="StdLabel" Text="Address Line #1" />
</asp:TableCell>
<asp:TableCell>
<asp:TextBox ID="txtPFAddrLine1" runat="server" CssClass="ResizableTextBox" />
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>
<asp:Label ID="txtPFAddrLine2_Label" runat="server" CssClass="StdLabel" Text="Address Line #2" />
</asp:TableCell>
<asp:TableCell>
<asp:TextBox ID="txtPFAddrLine2" runat="server" CssClass="ResizableTextBox" />
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</asp:View>
</asp:MultiView>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</asp:Panel>发布于 2011-10-03 23:43:17
我终于找到了这个问题的症结所在。事实证明,您不能简单地复制标记并期望它能正常工作。AJAX Tab控件也是如此。当您从工具箱添加MultiView元素时,它还会在后台执行一些操作,这些操作会添加使整个工作正常所需的任何JavaScript库和调用。当您简单地从另一个页面复制标记时,这些项不会完成,页面上的MultiView功能也不会按预期工作。
您需要(至少)将元素从“工具箱”添加到页面,然后才能复制内部标记。
这样做解决了我的问题。
https://stackoverflow.com/questions/6914305
复制相似问题