我有一个Intranet页面,其中包含一个驱动整个网站的Site.map驱动的ASP
菜单控件。
对于我的大多数页面来说,将用户推送到当前窗口中的新内容页面非常棒。
然而,对于某些大型报告,根本没有足够的空间来舒适地显示整个页面。
点击某些节点是否有可能出现new
或pop 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;
当使用它时,对于非标准的站点地图参数(地址,高度等),它会抛出错误吗?
答案 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>