Jaký je nejlepší způsob, jak naplnit ovládací nabídky na vzorové stránce?

hlasů
3

Databáze? Proměnné stránka? Enum?

Dívám se na názory zde.

Položena 10/09/2008 v 15:05
zdroj uživatelem
V jiných jazycích...                            


8 odpovědí

hlasů
4

Funkce ASP.NET stránek je postaven na to a funguje dobře v mnoha případech. Pokud se dostanete na místo, kde chcete, aby vaše menu vypadat neliší od souboru Sitemap, zde je několik řešení .

Pokud máte dynamickou strukturu webu, můžete vytvořit zprostředkovatele vlastní sitemap . Dalo by se dostat do bodu, kdy je to mnohem větší problémy, než to stojí za to, ale obecně vyplnění svou nabídku ze souboru Sitemap vám některé příjemné vlastnosti, jako je zabezpečení ořezávání, ve kterých volby menu jsou vhodné pro přihlášeného uživatele.

Odpovězeno 10/09/2008 v 15:10
zdroj uživatelem

hlasů
2

To je zajímavá otázka, existuje spousta způsobů, jak se to blíží.

Dalo by se nahrát strukturu menu z XML, to je způsob, vestavěný navigační prvky ASP.NET / „Sitemap“ nastavení funguje. To je asi dobrá volba celkově, a tam je poměrně dobré nástroje pro něj v Visual Studio.

Pokud se jedná o dynamické menu, které je třeba změnit hodně, dostat položky z databáze může být dobrý nápad, ale budete určitě chtít mezipaměti, takže DB nedostane hit na každé stránce render.

Odpovězeno 10/09/2008 v 15:09
zdroj uživatelem

hlasů
1

Vytvořil jsem stránky pomocí ovládacích prvků přihlášení ASP.NET a Ověřování formulářů pro členství / pověření pro webovou aplikaci ASP.NET. A já jsem s použitím mapa stránek pro procházení webových stránek.

Mám ASP.NET TreeView a ovládací menu navigace naplněna pomocí SiteMapDataSource. Ale uzavřený správce pouze stránky jsou viditelné pro uživatele bez oprávnění správce.

  1. Vytvořil jsem web.sitemap mapa stránek souboru. A já jsem použil nástroje pro správu ASP.NET Web Site nastavit přístupová pravidla .

  2. Přidal jsem ovládací prvky na mé .master stránku ...

    <asp:SiteMapPath ID="SiteMapPath1" runat="server" />
    <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource2" />
    <asp:TreeView ID="TreeView1" runat="server"  DataSourceID="SiteMapDataSource1" />
    <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
    <asp:SiteMapDataSource ID="SiteMapDataSource2" runat="server" ShowStartingNode="False" />
    
  3. Nastavil jsem securityTrimmingEnabled na „true“ v mém souboru web.config ...

    <?xml version="1.0"?>
    <configuration>
        ...
        <system.web>
            ...
            <siteMap defaultProvider="default">
                <providers>
                    <clear/>
                    <add name="default"
                        type="System.Web.XmlSiteMapProvider"
                        siteMapFile="web.sitemap"
                        securityTrimmingEnabled="true"/>
                </providers>
            </siteMap>
            ...
        </system.web>
        ...
    </configuration>
    
  4. I upravené strom v kódu master.vb za soubor ...

    Protected Sub TreeView1_DataBound( ByVal sender As Object, ByVal e As EventArgs ) Handles TreeView1.DataBound
    
        'Collapse unnecessary menu items...
        If TreeView1.SelectedNode IsNot Nothing Then
            Dim n As TreeNode = TreeView1.SelectedNode
            TreeView1.CollapseAll()
            n.Expand()
            Do Until n.Parent Is Nothing
                n = n.Parent
                n.Expand()
            Loop
        Else
            TreeView1.ExpandAll()
        End If
    
    End Sub
    
Odpovězeno 11/09/2008 v 22:35
zdroj uživatelem

hlasů
0

Efektivní přístup je prvotní funkce z pohledu uživatele. Obecný přístup je podnětný slovník vyhledávání , které dobře zapadá do velké a vnořené struktuře menu taky. Uživatel přejde pomocí kliknutí nebo jedinečných stisknutí kláves, navíc šipka klíče postoupit (vpravo), nebo vrátit zpět (vlevo) s nahoru / dolů jako obvykle. Já bych navrhnout, aby naplnit menu na vyžádání kromě počátečního jednoho a poskytne javascript akci, kdykoli je vybrán finální element.

Odpovězeno 06/08/2010 v 14:26
zdroj uživatelem

hlasů
0

Máme podobnou funkci.

Nabídka aplikace je načten na hlavní stránce z databáze, protože viditelné položky menu závisí na oprávnění uživatele.

Pár konvencí a chytré konstrukci na databázi zajistit, aby nabídka nakládací kód je obecný a automagicky naviguje na správnou obrazovku při výběru určité položky menu. Používáme UIP k navigaci a ComponentArt pro webové ovládací prvky.

BTW ComponentArt naštve. Na druhou stranu myslím, že veškerou kontrolu třetí strany knihovny dělat.

Odpovězeno 10/09/2008 v 15:21
zdroj uživatelem

hlasů
0

To zcela závisí na tom, jak web funguje. Jsem ve shodě s většinou, že mapa stránek je obvykle nejlepší způsob, jak to udělat. Nicméně, pokud používáte CMS, pak byste mohli potřebovat, aby ji udrželi v databázi. Pokud máte stránky taxonomie-centric, pak použijte taxonomii stavět menu. Neexistuje žádný „nejlepší způsob, jak“ dělat navigaci, jen to nejlepší způsob, jak pro danou situaci.

Odpovězeno 10/09/2008 v 15:16
zdroj uživatelem

hlasů
0

Vazba na Mapa stránek je jistě nejjednodušší.

Odpovězeno 10/09/2008 v 15:08
zdroj uživatelem

hlasů
0

Pokud se nabídka je dynamická per-uživatel pak budete muset zasáhnout do databáze pro každého uživatele. Od té doby bych asi uložte jej na zasedání, aby se zabránilo budoucí kolo-výlety do databáze.

Pokud je to dynamický, ale celý web vidí stejné položky, pak ji do databáze a mezipaměti výsledků

Odpovězeno 10/09/2008 v 15:07
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more