¿Es posible utilizar un mapa web de ASP.NET con un menú jQuery Superfish?Menú jQuery y mapa del sitio ASP.NET
En caso negativo, ¿hay disponibles complementos de navegador basados en estándares que funcionen con el archivo web.sitemap?
¿Es posible utilizar un mapa web de ASP.NET con un menú jQuery Superfish?Menú jQuery y mapa del sitio ASP.NET
En caso negativo, ¿hay disponibles complementos de navegador basados en estándares que funcionen con el archivo web.sitemap?
He encontrado esta pregunta al buscar la misma respuesta ... todo el mundo dice es posible, pero nadie da la verdadera solución! Me parece que tienen que trabajar ahora de manera pensé que había puesto mis hallazgos ...
cosas que necesitaba:
CSS Friendly Control Adaptors descarga DLL y archivo .browsers (en las carpetas/bin y/App_Browsers respectivamente)
ASP.NET SiteMap (a. sitemap archivo XML y siteMap
proveedor e nIntente en web.config)
Mi terminado Masterpage.master
tiene la etiqueta head
siguiente:
<head runat="server">
<script type="text/javascript" src="/script/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="/script/superfish.js"></script>
<link href="~/css/superfish.css" type="text/css" rel="stylesheet" media="screen" runat="server" />
<script type="text/javascript">
$(document).ready(function() {
$('ul.AspNet-Menu').superfish();
});
</script>
</head>
que es básicamente todo el material necesario para el menú jQuery Superfish a trabajar. Dentro de la página (en el menú va) es el siguiente (en base a these instructions):
<asp:SiteMapDataSource ID="SiteMapDataSource" runat="server"
ShowStartingNode="false" />
<asp:Menu ID="Menu1" runat="server"
DataSourceID="SiteMapDataSource"
Orientation="Horizontal" CssClass="sf-menu">
</asp:Menu>
Sobre la base de la documentación, esto parece que debería funcionar - pero no es así. La razón es que el CssClass="sf-menu"
se sobrescribe cuando se representa el menú y la etiqueta <ul>
obtiene un class="AspNet-Menu"
. Pensé que la línea $('ul.AspNet-Menu').superfish();
ayudaría, pero no fue así.
una cosa más
Aunque se trata de un truco (y por favor, que alguien me apunta a la solución correcta) que era capaz de conseguir que funcione abriendo el archivo y superfish.css
búsqueda y sustitución deSF- menú con AspNet-Menú ... y listo! el menú apareció. Pensé que habría alguna configuración de configuración en el control asp:Menu
donde podría establecer la clase <ul>
pero no encontré ninguna pista a través de google.
El control SiteMapDataSource debe poder vincularse a cualquier control jerárquico vinculado a datos. No estoy familiarizado con superfish pero sé que hay muchos controles jQueryish para hacer esto.
Parece que necesita generar una UL para Superfish. Debería poder hacer esto con ASP.Net desde su mapa del sitio. Creo que el control del mapa del sitio hará algo como esto. De lo contrario, debería ser bastante trivial llamar al mapa del sitio directamente desde C# y generar el DOM mediante programación. Puede crear un control de usuario para hacer esto, o hacerlo en la página maestra.
Consulte this MSDN article sobre cómo enumerar los nodos en el mapa de su sitio mediante programación.
Sí, es totalmente posible.
Lo he usado con el ASP: control de menú y jQuery 1.2.6 con el complemento Superfish. Tenga en cuenta que necesitará el ASP.NET 2.0 CSS Friendly Control Adapters.
ASP.NET genera el ASP: control de menú como un diseño de tabla. El adaptador de control amigable de CSS hará que ASP.NET genere el ASP: control de menú como un diseño UL/LI dentro de un div.
Esto permitirá una fácil integración del plugin jQuery y Superfish porque el plugin Superfish se basa en un diseño UL/LI.
Recuerde agregar clases css para elementos NonLink. Los elementos de css Superfish no se ajustan a ellos. Y si eres como yo y tienes un menú raíz que no son enlaces, entonces rinde horriblemente. Simplemente agregue elementos AspNet-Menu-NonLink al archivo superfish.css y debería funcionar bien.
he creado un proyecto de ejemplo poco aseado que puede utilizar en http://simplesitemenu.codeplex.com/
Es un control compuesto que genera una lista/LI anidada UL de su mapa del sitio.
¡Disfrútalo!
¡Fantástico! He estado buscando una respuesta desde que hice esta pregunta por primera vez. –
He cargado un proyecto de ejemplo con todos los archivos necesarios http://conceptdevelopment.net/Fun/Superfish – Conceptdev
En cuanto a las clases de CSS, tiene razón en que no son configurables. Los nombres de clase están codificados en el código CSSFriendly. Podrías descargar el código fuente, modificar las clases y reconstruir los archivos DLL si realmente quisieras, pero creo que tu camino es mucho más simple. –