2009-10-30 16 views
0

J'ai une page intranet qui a un site.map piloté ASP Le contrôle de menu qui pilote l'ensemble du site.Nouvelle fenêtre sur le menu ASP cliquez sur

La plupart de mes pages poussent l'utilisateur vers une nouvelle page de contenu dans la fenêtre en cours. Cependant, pour certains grands rapports, il n'y a tout simplement pas assez de biens immobiliers pour afficher confortablement la totalité de la page.

Est-il possible, lorsque l'on clique sur certains nœuds, qu'une fenêtre new ou pop up apparaît idéalement, me donnant l'option de sélectionner la taille.

Exemple de code pour le fichier plan du site

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

Modifier,

Après avoir suivi l'url Here dans les commentaires que je suis beaucoup plus proche. Cependant, je reçois une erreur.

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 

Pour une raison quelconque, il ne lie les attirbuites standards sitemap (titre, URL, etc.) et les erreurs (DataBinding: « System.Web.SiteMapNode » ne contient pas une propriété avec le nom « adresse ») en mettant un point d'arrêt dans je peux lire les attributs standard ses les coutume qui ont fait semblaient se passer

Si frustrant que je suis si proche !!

Edit 2:

trouvé un moyen d'ouvrir une autre fenêtre en utilisant la commande _blank mais ne me donne pas la possibilité d'adapter la taille de la fenêtre et de supprimer les barres d'adresse, etc. Si quelqu'un peut obtenir l'exemple du lien page à travailler J'aimerais voir un exemple!

Edit 3:

Convaincu que ses quelque chose à voir avec ces lignes

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

devrait-il pas

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

lorsque vous utilisez ce cependant pour les paramètres non standard plan du site (adresse, hauteur etc) il jette des erreurs?

Répondre

2

si vous utilisez javascript vous pouvez utiliser quelque chose comme

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; 
} 

puis appeler la fonction de votre contrôle asp.

espérons que cette aide

+0

Pas très familier avec Java, où dois-je ajouter ceci? Au fichier Web.sitemap? –

+2

Pouvez-vous poster du code? ce n'est pas Java. c'est javascript. qui est un langage de script côté client pour les pages Web. – Kamal

+0

Jetez un coup d'oeil à ceci. c'est assez basique. http://coloboxp.wordpress.com/2007/09/14/adding-javascript-to-aspnet-menu-control-to-open-a-popup-window-centered/ – Kamal

0

Je pense que vous pouvez le faire sans javascript, dans votre page plan du site ajouter une cible nommée attibute pour chaque noeud (ensemble _blank si vous voulez pop-up), et dans votre modèle maître sitemap juste faites ce qui suit

<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>