ASP菜单上的新窗口单击

时间:2009-10-30 12:40:47

标签: asp.net reporting-services aspmenu

我有一个Intranet页面,其中包含一个驱动整个网站的Site.map驱动的ASP菜单控件。

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

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

点击某些节点是否有可能出现newpop up窗口,理想情况下可以选择尺寸。

站点地图文件的示例代码

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

编辑,

在评论中关注网址Here后,我更加接近了。但是我收到了错误。

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

由于某种原因,它仅绑定标准站点地图attirbuites(标题,网址等)和错误( DataBinding:'System.Web.SiteMapNode'不包含名称为'address'的属性当我在断开点时,我可以读取标准属性,其中所做的自定义属性似乎已经过去了

因为我如此接近所以令人沮丧!!

编辑2:

找到了一种使用_blank命令打开另一个窗口的方法,但是没有让我能够定制窗口大小并删除地址栏等。如果任何人都能得到链接页面的例子,我很乐意看到一个例子!

编辑3:

深信这与这些行有关

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

不应该

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

当使用它时,对于非标准的站点地图参数(地址,高度等),它会抛出错误吗?

2 个答案:

答案 0 :(得分: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控件上调用该函数。

希望这会有所帮助

答案 1 :(得分: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>