MultiView未显示

时间:2011-08-02 15:11:29

标签: asp.net

我有一个页面,我试图使用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>

1 个答案:

答案 0 :(得分:3)

我终于找到了问题所在。事实证明,你不能简单地复制标记并期望这个工作。 AJAX选项卡控件也是如此。当您从工具箱添加MultiView元素时,它还会在后台执行操作,添加任何JavaScript库和调用以使整个工作正常。当您只是从另一个页面复制标记时,这些项目无法完成,并且页面上的MultiView功能无法按预期运行。

您需要(至少)从工具箱中将元素添加到页面,然后您可以复制内部标记。

这样做解决了我的问题。