我有一个页面,我试图使用ASP实现一个简单的两个选项卡Tab控件:MultiView和ASP:菜单控件。
我在同一个应用程序的另一个页面上工作得很好但是由于某种原因,在这个页面上隐藏了整个MultiView。标记在浏览器提供的源中,但任一视图中的所有控件都是不可见的。视图占据了空间。当我在MultiView控件下放置另一个控件时,它会显示在我期望的位置。
两页之间存在差异。它的工作原理是一个标准的ASP.NET页面,它显示在一个模态对话框中。我正在努力解决的问题是使用母版页的内容页面。
页面上已经有很多标记,但我已经包含了包含下面整个“Tab Control”的Panel的标记。
我确实尝试从Panel中取出“Tab Control”,但行为没有变化。
对此的任何想法都会得到真正的赞赏。
谢谢, 道格
<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>
答案 0 :(得分:3)
我终于找到了问题所在。事实证明,你不能简单地复制标记并期望这个工作。 AJAX选项卡控件也是如此。当您从工具箱添加MultiView元素时,它还会在后台执行操作,添加任何JavaScript库和调用以使整个工作正常。当您只是从另一个页面复制标记时,这些项目无法完成,并且页面上的MultiView功能无法按预期运行。
您需要(至少)从工具箱中将元素添加到页面,然后您可以复制内部标记。
这样做解决了我的问题。