- Mesajlar
- 1,726
Örneğimi güncel bir konudan vereceğim. Malumunuz bakanlık bizi il/ilçe scriptlerinde dar kalıp bir şablona zorluyor. Diğer makalelerimde verdiğim yazıların devamı olarak bakanlık sol menünün açılır menüsünü yöneten diksubmenu.xml i okulayı anlatan bir örnek vereyim.
Xml Örneğimiz aşağıdaki gibi olsun.
Design kısmına yani html kısmımıza bir adet LiteralDikSubMenu adında Literal ekleyelim.
Ve kodumuz
Xml okuma yöntemimiz yukarıdadır. .Attirbutes ile xml deki özellikleri okuyor; SelectNodes ile bir node (budak) in altındaki tüm budakları sorguluyor; SelectSingleNode ve InnerText ile bu budağın içindeki değeri getiriyoruz.
Xml Örneğimiz aşağıdaki gibi olsun.
Kod:
<?xml version="1.0" encoding="utf-8"?>
<menu>
<altmenu ikon="" altmenuadi="mudurluk">
<altmenubaglantisatir>
<baslik>İl Milli Eğitim Müdürü</baslik>
<link>/Detay/137/il-milli-egitim-muduru.html</link>
<img>icon.png</img>
<altmenubaglanti>icon.png</altmenubaglanti>
</altmenubaglantisatir>
<altmenubaglantisatir>
<baslik>Eğitim Denetmenleri Başkanlığı</baslik>
<link>#</link>
<img>icon.png</img>
<altmenubaglanti>icon.png</altmenubaglanti>
</altmenubaglantisatir>
<altmenubaglantisatir>
<baslik>İdari Kadro</baslik>
<link>#</link>
<img>icon.png</img>
<altmenubaglanti>icon.png</altmenubaglanti>
</altmenubaglantisatir>
<altmenubaglantisatir>
<baslik>Stratejik Plan</baslik>
<link>#</link>
<img>icon.png</img>
<altmenubaglanti>icon.png</altmenubaglanti>
</altmenubaglantisatir>
<altmenubaglantisatir>
<baslik>Teşkilat Şeması</baslik>
<link>#</link>
<img>icon.png</img>
<altmenubaglanti>icon.png</altmenubaglanti>
</altmenubaglantisatir>
</altmenu>
<altmenu ikon="" altmenuadi="ilceler">
<altmenubaglantisatir>
<baslik>İvrindi</baslik>
<link>#</link>
<img />
<altmenubaglanti />
</altmenubaglantisatir>
<altmenubaglantisatir>
<baslik>Savaştepe</baslik>
<link>#</link>
<img />
<altmenubaglanti />
</altmenubaglantisatir>
<altmenubaglantisatir>
<baslik>Balya</baslik>
<link>#</link>
<img />
<altmenubaglanti />
</altmenubaglantisatir>
</altmenu>
</menu>
Ve kodumuz
Kod:
protected void Page_Load(object sender, EventArgs e)
{
this.DikSubMenuGetir();
}
private void DikSubMenuGetir()
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("~/xml/diksubmenu.xml"));
XmlNode root = doc.DocumentElement;
foreach (XmlNode xn in root.SelectNodes("altmenu"))
{
bool _mudurluk = xn.Attributes["altmenuadi"].Value == "mudurluk" ? true : false;
string css = _mudurluk ? "mbmenu" : "mbmenu boxMenu";
LiteralDikSubMenu.Text += "<div id=\"" + xn.Attributes["altmenuadi"].Value + "\" class=\"" +
css + "\">";
if (!_mudurluk)
LiteralDikSubMenu.Text += "<table border=\"0\" ><tr><td>";
foreach (XmlNode altxn in xn.SelectNodes("altmenubaglantisatir"))
{
string icon = _mudurluk ? "" : " class=\"{img:'icon.png'}\"";
LiteralDikSubMenu.Text += "<a href=\"" +
altxn.SelectSingleNode("link").InnerText + "\"" +
icon + ">" +
altxn.SelectSingleNode("baslik").InnerText + "</a>";
if (_mudurluk)
LiteralDikSubMenu.Text += "<a rel=\"separator\"> </a>";
}
if (!_mudurluk)
LiteralDikSubMenu.Text += "</td></tr></table>";
LiteralDikSubMenu.Text += "</div>";
}
}
Xml okuma yöntemimiz yukarıdadır. .Attirbutes ile xml deki özellikleri okuyor; SelectNodes ile bir node (budak) in altındaki tüm budakları sorguluyor; SelectSingleNode ve InnerText ile bu budağın içindeki değeri getiriyoruz.