Theory
"मैं कहाँ हूँ?"
FestConnect के deep अंदर, registration page पर एक student सोच सकता है ये यहाँ कैसे पहुँचे और कैसे वापस step back करें। Web पर familiar answer page के top के पास एक breadcrumb trail है:
Home > Events > Register
Last से पहले हर part एक link है वापस ऊपर। ASP.NET आपके लिए यह trail दिखाने वाला एक ready-made control provide करता है: SiteMapPath। यह short lesson cover करता है यह क्या करता है और trail कहाँ से पाता है।
Theory
SiteMapPath और Site Map
SiteMapPath एक navigation server control है जो site में current page की position को एक breadcrumb की तरह display करता है, ancestor pages links की तरह दिखाई देते हैं और current page end पर plain text की तरह।
इसे आपसे per page trail specify करने की ज़रूरत नहीं। इसकी बजाय यह site की structure को एक site map से पढ़ता है, default से Web.sitemap नाम की एक file। वह XML file आपके pages और इनके parent-child relationships describe करती है। SiteMapPath देखता है visitor currently कहाँ है और home page से इस तक path automatically render करता है।
Practical
Web.sitemap: describing the hierarchy
<siteMap>
<siteMapNode title="Home" url="~/Default.aspx">
<siteMapNode title="Events" url="~/Events.aspx">
<siteMapNode title="Register" url="~/Register.aspx" />
</siteMapNode>
</siteMapNode>
</siteMap>
<!-- Nesting defines parent-child: Home > Events > Register -->This example runs in Gri-Learn on the web, where you can edit it and see the output.
Practical
Dropping the control onto a page
<!-- Often placed on the master page so every page shows breadcrumbs -->
<asp:SiteMapPath runat="server" />
<!-- On Register.aspx this renders: Home > Events > Register -->This example runs in Gri-Learn on the web, where you can edit it and see the output.
Formula
एक Control, हर Page
Elegance यह है कि SiteMapPath site map plus current page से trail work out करता है, तो एक single control हर page handle करता है। इसे master page पर एक बार put कीजिए और हर content page automatically अपनी own location के लिए correct breadcrumb दिखाता है।
Web.sitemap में hierarchy update कीजिए और हर जगह breadcrumbs follow करते हैं, कोई per-page editing नहीं। यह फिर वही define-once idea है: structure को एक file में describe कीजिए, और control इसे site-wide reflect करता है।
Quiz
एक दिए गए page पर एक SiteMapPath control को कैसे पता चलता है कौन सा breadcrumb trail display करना है?
- आप हर page के SiteMapPath में trail hand से type करते हैं
- यह site की structure को एक site map से पढ़ता है (default से Web.sitemap) और current page तक path दिखाता है
- यह page के colours से trail guess करता है
- यह हर बार trail के लिए database query करता है
Show the answer
यह site की structure को एक site map से पढ़ता है (default से Web.sitemap) और current page तक path दिखाता है
SiteMapPath site की hierarchy को एक site map से पढ़ता है, default से Web.sitemap XML file, और home page से visitor जिस page पर currently है वहाँ तक path render करता है। Option A exactly वह है जिससे SiteMapPath आपको बचाता है: आप per page trail hand-type NAHIN करते; यही पूरी convenience है। Option C nonsense है; colours का navigation structure से कोई लेना-देना नहीं है। Option D wrong है: default site map एक XML file है, database query नहीं; SiteMapPath site-map structure इस्तेमाल करता है, database नहीं। Hierarchy को Web.sitemap में एक बार describe कीजिए, और control हर page पर सही trail दिखाता है।
Think first
Breadcrumbs के साथ क्यों बोदर करें?
Menus पहले से users को navigate करने देते हैं। Breadcrumbs क्या add करते हैं, और इन्हें एक site map से generate क्यों करें? फिर tap कीजिए।
Show the answer
Breadcrumbs दो questions answer करते हैं जो एक menu नहीं करता: 'मैं abhi कहाँ हूँ?' और 'मैं एक level ऊपर वापस कैसे step करूँ?'। Register जैसे एक deep page पर, एक menu सारी जगहें दिखाता है जहाँ आप जा COULD सकते हैं, पर breadcrumb Home > Events > Register instantly visitor को site की structure में इनकी current location दिखाता है और इन्हें Events या Home वापस one-click links देता है। वह orientation large sites पर lost feeling को कम करता है और एक छोटी पर real usability win है। इन्हें एक site map से generate करना (हर trail hand-write करने की बजाय) मतलब है trails हमेशा actual structure से CONSISTENT रहते हैं और आपके reorganise करने पर automatically update होते हैं: Web.sitemap में hierarchy एक बार बदलिए और site के across हर breadcrumb खुद correct हो जाता है। तो breadcrumbs orientation improve करते हैं, और इन्हें एक single site map से drive करना इन्हें बिना manual upkeep के accurate रखता है। Location plus easy step-back, एक जगह maintained।
Summary
Key takeaways
- SiteMapPath एक navigation server control है जो एक breadcrumb trail दिखाता है, जैसे Home > Events > Register।
- Ancestor pages links की तरह दिखते हैं; current page end पर plain text की तरह दिखता है।
- यह trail को एक site map से पाता है, default से एक Web.sitemap XML file जो pages और इनके parent-child relationships describe करती है।
- आप <asp:SiteMapPath> को एक page में add करते हैं (अक्सर master page) और यह आप जिस भी page पर हों उसके लिए correct trail render करता है।
- एक control plus एक site map पूरी site के लिए breadcrumbs handle करता है; site map reorganise कीजिए और सारे trails update हो जाते हैं।
- Breadcrumbs orientation improve करते हैं ('मैं कहाँ हूँ?') और hierarchy में वापस quick links देते हैं।
- Memory hook: SiteMapPath Web.sitemap पढ़ता है और आपको दिखाता है आप कहाँ हैं।