0

我有一个 Intranet 页面,它有一个驱动ASP整个站点的 Site.map 驱动的菜单控件。

对于我的大多数页面,将用户推送到当前窗口中的新内容页面非常棒。

然而,对于某些大型报表,根本没有足够的空间来舒适地显示整个页面。

单击某些节点时是否有可能理想地出现一个newpop up窗口,让我可以选择大小。

站点地图文件的示例代码

<siteMap>
  <siteMapNode title="Top" >
    <siteMapNode title="Menu 1" >
      <siteMapNode title="Report" url="~/Iwantthisurl-to-pop-out.aspx"/>
    </siteMapNode>
  </siteMapNode>
</siteMap>

编辑,

在关注评论中的 url 之后,我离这里更近了。但是我收到一个错误。

Protected Sub Menu1_MenuItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MenuEventArgs)


    Dim address As String = String.Empty
    Dim heigth As String = String.Empty
    Dim width As String = String.Empty
    Dim title As String = String.Empty
    Dim url As String = String.Empty
    Dim poptest As String = String.Empty

    poptest = CStr(DataBinder.Eval(e.Item.DataItem, "url"))


    If String.IsNullOrEmpty(poptest) Then

        address = CStr(DataBinder.Eval(e.Item.DataItem, "address"))
        heigth = CStr(DataBinder.Eval(e.Item.DataItem, "heigth"))
        width = CStr(DataBinder.Eval(e.Item.DataItem, "width"))
        title = CStr(DataBinder.Eval(e.Item.DataItem, "title"))
        url = CStr(DataBinder.Eval(e.Item.DataItem, "url"))
    Else

    End If

由于某种原因,它只绑定标准站点地图属性(标题、url 等)和错误(DataBinding: 'System.Web.SiteMapNode' 不包含名称为 'address' 的属性),当我可以读取断点时标准属性它的自定义属性似乎正在通过

如此令人沮丧,因为我是如此接近!

编辑 2:

找到了一种使用 _blank 命令打开另一个窗口的方法,但我无法调整窗口大小和删除地址栏等。如果有人可以让链接页面的示例正常工作,我很乐意看到一个示例!

编辑 3:

确信它与这些线条有关

title = ((SiteMapNode)(e.Item.DataItem))["title"]; 

不应该

title = ((System.Web.SiteMapNode)(e.Item.DataItem)).Title;

但是,当将其用于非标准站点地图参数(地址、高度等)时,它会引发错误吗?

4

2 回答 2

2

如果您使用的是 javascript,您可以使用类似的东西

function popup()
{
       var url = '/thepagetopopup.aspx';
       window.showModalDialog(url, 'Value', 'dialogHeight:600px,dialogWidth:1000px;');
       //or
       window.open(url, 'value', 'dialogHeight:600px,dialogWidth:800px');
       return false;
}

然后调用你的asp控件上的函数。

希望这可以帮助

于 2009-10-30T12:47:29.657 回答
0

我认为你可以在没有 javascript 的情况下做到这一点,在你的站点地图页面中添加一个名为 target 的属性到每个节点(如果想要弹出,设置为 _blank),并在你的主站点地图模板中执行以下操作

<asp:SiteMapPath ID="SiteMapPath1" runat="server">
  <RootNodeTemplate>
<a href='#Eval("url")' target="_blank"><%# Eval("title") %></a>
     <asp:LinkButton ID="LinkButton1" runat="server" 
                     Text='<%# Eval("title") %>' 
                     CommandArgument='<%# Eval("url") %>' 
target='<%# Eval("target") %>' 
                     OnCommand="LinkButton1_Command">
     </asp:LinkButton>
  </RootNodeTemplate>
</asp:SiteMapPath>
于 2009-10-30T14:51:18.597 回答