TreeView नियंत्रण में एएसपी.NET साइटमैप नोड्स छुपाएं - asp.net, treeview, साइटमैप

मेरे पास मेरे सभी नोड्स के साथ एक साइटमैप है। मैं एक TreeView नियंत्रण का उपयोग कर रहा हूं जो नेविगेशन के लिए साइटमैप से जुड़ा हुआ है। अब मैं कुछ दृश्य नोड्स को TreeView पर प्रदर्शित करने से छिपाना चाहूंगा। क्या ऐसा करना संभव है?

उत्तर:

उत्तर № 1 के लिए 6

हां, यह निश्चित रूप से संभव है। जिस तरह से हम करते हैं वह एक कस्टम "IsPhantom" विशेषता है जिसे हम नोड्स में डॉन "t" करते हैं जो साइटमैप में दिखाया गया है (और अन्य कई स्थानों पर भी)

<siteMapNode url="~/Welcome.aspx" title="Welcome" description="" isPhantom="true" />

फिर साइटमैप नियंत्रण में, "IsPhantom" विशेषता वाले नोड्स को निकालने के लिए निम्न कोड का उपयोग करें:

protected void Page_Load(object sender, EventArgs e)
{
TreeView1.TreeNodeDataBound += new TreeNodeEventHandler(TreeView1_TreeNodeDataBound);
SiteMapSource.Provider = this.CurrentProvider;
}

protected void TreeView1_TreeNodeDataBound(object sender, TreeNodeEventArgs e)
{
SiteMapNode thisMapNode = (SiteMapNode)e.Node.DataItem;
TreeNode parentTreeNode = e.Node.Parent;

if (thisMapNode["isPhantom"] != null && thisMapNode["isPhantom"].ToLower().Equals(bool.TrueString.ToLower()) && parentTreeNode != null)
parentTreeNode.ChildNodes.Remove(e.Node);
}

जवाब के लिए 0 № 2

किस मापदंड के आधार पर? यदि आप केवल विशिष्ट सिंगल नोड्स को छुपाना चाहते हैं, तो ट्री व्यू के NodeDataBound इवेंट को सब्सक्राइब करें और विज़िबल = गलत को पूरा आइटम (नोड) सेट करें।

यदि आपको इसे बेहतर तरीके से करने की आवश्यकता है औरअधिक लचीलापन प्रदान करें, मैं आपको सलाह दूंगा कि आप अपने खुद के SiteMapProvider को लागू करें। तब आपके पास प्रत्येक साइटमैप नोड के लिए एक संपत्ति ShowInNavigation हो सकती है, और अपने साइटमैप का निर्माण करते समय इसे सेट करने में सक्षम होगा।