使用另一个文件夹中的页面从mantpages中的navigateurl中调用数据库中的页面

时间:2011-06-08 08:05:11

标签: asp.net vb.net-2010

首先,我想就我提出的问题道歉,因为我不知道如何继续这样做

我使用vb在asp.net中创建一个网站,我遇到了问题。

我创建了一个数据库来显示带有页面位置的菜单名称。

我在根文件夹/ Pages中创建了一个文件夹调用/ Pages / MasterPages,其中主页设计进入该页面,而普通的浏览页面位于根文件夹中

我还有一个名为/ Pages / Admin的文件夹,其中该网站的CMS进入该文件夹。

现在我有以下代码调用数据库中的菜单项

<asp:Repeater ID="_menuDisplay" runat="server">
                                        <HeaderTemplate>
                                            <table id="navigation" border="0">
                                        </HeaderTemplate>
                                        <ItemTemplate>
                                            <tr>
                                                <td><asp:HyperLink ID="Hyperlink" runat="server" NavigateUrl=<%# Container.DataItem("pageName") %>><%# Container.DataItem("menuName")%></asp:HyperLink> </td>
                                            </tr>
                                        </ItemTemplate>
                                        <FooterTemplate>
                                            </table>
                                        </FooterTemplate>
                                    </asp:Repeater>

Container.DataItem(“pageName”)显示页面/ home.aspx Container.DataItem(“menuName”)显示Home(home.aspx页面的名称)

以上代码位于母版页

执行时,Internet Explorer上的页面名称显示pages / masterpage / pages / home.aspx,它应该只显示pages / home.aspx

请帮忙

此致

Leroy M

1 个答案:

答案 0 :(得分:0)

尝试这样的事情

1:在页面后面的代码中创建一个公共函数。    即。

Public Function ResolveUrl(objValue as object) as String
     Dim sPath as String = Page.ResolveUrl(cstr(objValue))
     Return sPath  
End Function  

2:更改网页中的代码:

NavigateUrl=<%# ResolveUrl(Container.DataItem("pageName")) %>

3:确保您的页面名称格式为“〜/ FolderPath / File.aspx ”〜告诉asp.net引擎从您的解决方案的根目录映射页面。< / p>

希望这有帮助。