Theory
"હું ક્યાં છું?"
FestConnect ની અંદર ઊંડે registration page પર પહોંચેલા વિદ્યાર્થીને થાય કે એ અહીં આવ્યો કઈ રીતે અને પાછો કઈ રીતે જાય. વેબ પર આનો જાણીતો જવાબ એટલે page ની ટોચ પાસે દેખાતી breadcrumb કેડી:
Home > Events > Register
છેલ્લા ભાગ પહેલાંનો દરેક ભાગ ઉપર પાછા જવાની link હોય છે. ASP.NET તમને આ કેડી બતાવતું તૈયાર control આપે છે: SiteMapPath. આ ટૂંકા પાઠમાં જોઈશું કે એ શું કરે છે અને કેડી ક્યાંથી મેળવે છે.
Theory
SiteMapPath અને site map
SiteMapPath એ navigation server control છે જે ચાલુ page નું site માંનું સ્થાન breadcrumb તરીકે બતાવે છે, જેમાં ઉપરનાં pages links તરીકે દેખાય છે અને ચાલુ page છેડે સાદા લખાણ તરીકે દેખાય છે.
એને દરેક page માટે કેડી અલગથી કહેવી પડતી નથી. એને બદલે એ site નું માળખું site map માંથી વાંચે છે, જે મૂળભૂત રીતે Web.sitemap નામની file હોય છે. એ XML file તમારાં pages અને એમના પિતા-પુત્ર સંબંધો વર્ણવે છે. મુલાકાતી અત્યારે જ્યાં હોય ત્યાં SiteMapPath શોધી કાઢે છે અને home page થી માંડીને એ page સુધીની કેડી આપોઆપ render કરે છે.
Practical
Web.sitemap: માળખું વર્ણવવું
<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
Control ને 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, બધાં pages
સુંદરતા એ છે કે SiteMapPath કેડી site map વત્તા ચાલુ page પરથી જાતે કાઢી લે છે, એટલે એક જ control બધાં pages સંભાળી લે છે. એને master page પર એક વાર મૂકી દો અને દરેક content page પોતાના સ્થાન પ્રમાણેનું સાચું breadcrumb આપોઆપ બતાવશે.
Web.sitemap માં માળખું બદલો એટલે બધે breadcrumbs એની પાછળ પાછળ બદલાઈ જાય, page દીઠ ફેરફાર કરવો પડતો નથી. આ ફરી એ જ એક વાર વ્યાખ્યા આપવાનો વિચાર છે: માળખું એક file માં વર્ણવો, અને control એને આખી site પર ઝીલી લે.
Quiz
કોઈ એક page પર કઈ breadcrumb કેડી બતાવવી એ SiteMapPath control ને કઈ રીતે ખબર પડે છે?
- તમે દરેક page ના SiteMapPath માં કેડી હાથે લખો છો
- એ site નું માળખું site map માંથી (મૂળભૂત રીતે Web.sitemap માંથી) વાંચે છે અને ચાલુ page સુધીની કેડી બતાવે છે
- એ page ના રંગો પરથી કેડીનું અનુમાન કરે છે
- એ દર વખતે કેડી માટે database ને query કરે છે
Show the answer
એ site નું માળખું site map માંથી (મૂળભૂત રીતે Web.sitemap માંથી) વાંચે છે અને ચાલુ page સુધીની કેડી બતાવે છે
SiteMapPath site નું માળખું site map માંથી, એટલે કે મૂળભૂત રીતે Web.sitemap XML file માંથી વાંચે છે, અને home page થી માંડીને મુલાકાતી અત્યારે જે page પર હોય ત્યાં સુધીની કેડી render કરે છે. વિકલ્પ A તો બરાબર એ જ કામ છે જેમાંથી SiteMapPath તમને બચાવે છે: તમારે page દીઠ કેડી હાથે લખવાની હોતી નથી; આખી સગવડ જ એ છે. વિકલ્પ C અર્થહીન છે; રંગોને navigation ના માળખા સાથે કશી લેવાદેવા નથી. વિકલ્પ D ખોટો છે: મૂળભૂત site map એ XML file છે, database query નહીં; SiteMapPath site-map નું માળખું વાપરે છે, database નહીં. માળખું Web.sitemap માં એક વાર વર્ણવો, અને control દરેક page પર સાચી કેડી બતાવશે.
Think first
Breadcrumbs ની માથાકૂટ શા માટે કરવી?
Menus તો વપરાશકારને પહેલેથી જ ફરવા દે છે. તો breadcrumbs એમાં શું ઉમેરે છે, અને એમને site map માંથી શા માટે બનાવવાં? વિચારીને પછી tap કરો.
Show the answer
Breadcrumbs એવા બે પ્રશ્નોના જવાબ આપે છે જે menu આપતું નથી: 'હું અત્યારે ક્યાં છું?' અને 'એક પગથિયું ઉપર કઈ રીતે જાઉં?'. Register જેવા ઊંડા page પર menu તો તમે જ્યાં જઈ શકો એ બધી જગ્યાઓ બતાવે છે, પણ Home > Events > Register એવું breadcrumb મુલાકાતીને તરત જ site ના માળખામાં એનું અત્યારનું સ્થાન બતાવે છે અને Events કે Home પર પાછા જવા માટે એક click ની links આપે છે. મોટી sites પર આ દિશાસૂચન ખોવાઈ ગયાની લાગણી ઘટાડે છે અને નાનો પણ સાચો usability લાભ છે. દરેક કેડી હાથે લખવાને બદલે એમને site map માંથી બનાવવાનો અર્થ એ કે કેડીઓ હંમેશા ખરા માળખા સાથે સુસંગત રહે છે અને તમે ગોઠવણ બદલો ત્યારે આપોઆપ સુધરી જાય છે: Web.sitemap માં માળખું એક વાર બદલો એટલે આખી site નાં બધાં breadcrumbs જાતે સુધરી જાય. એટલે breadcrumbs દિશાસૂચન સુધારે છે, અને એમને એક જ site map પરથી ચલાવવાથી કોઈ પણ હાથની જાળવણી વગર એ સાચાં રહે છે. સ્થાન અને સહેલું પાછું પગથિયું, બંને એક જ જગ્યાએ જળવાય.
Summary
Key takeaways
- SiteMapPath એ navigation server control છે જે Home > Events > Register જેવી breadcrumb કેડી બતાવે છે.
- ઉપરનાં pages links તરીકે દેખાય છે; ચાલુ page છેડે સાદા લખાણ તરીકે દેખાય છે.
- એ કેડી site map માંથી મેળવે છે, જે મૂળભૂત રીતે Web.sitemap XML file છે અને pages તથા એમના પિતા-પુત્ર સંબંધો વર્ણવે છે.
- તમે page પર (ઘણી વાર master page પર) <asp:SiteMapPath> ઉમેરો છો અને તમે જે page પર હો એના માટે એ સાચી કેડી render કરે છે.
- એક control અને એક site map આખી site નાં breadcrumbs સંભાળી લે છે; site map ફરી ગોઠવો એટલે બધી કેડીઓ સુધરી જાય.
- Breadcrumbs દિશાસૂચન સુધારે છે ('હું ક્યાં છું?') અને માળખામાં ઉપર પાછા જવાની ઝડપી links આપે છે.
- યાદ રાખવાની કડી: SiteMapPath Web.sitemap વાંચે છે અને તમે ક્યાં છો એ બતાવે છે.