Deaktivieren ASP.net treeview mit Checkboxen
Wie würden Sie Jungs bedingt deaktivieren Sie die Checkboxen asp treeview?
Zum Beispiel, wenn ein Benutzer der Anwendung nicht einer gewissen Berechtigung, deaktivieren Sie diese Berechtigung Eintrag Kontrollkästchen Berechtigungen in einer treeview.
Hier ist, was ich Suche, dies ist die equivaqlent in einer winform-app (die Kontrollkästchen sind deaktiviert, wo ist der text Grau dargestellt):
Sah ich die anderen Lösungen, bei denen das Ereignis click auf die Checkboxen, wird abgefangen und ignoriert. Ich würde lieber eine Lösung, wo die Checkboxen sind einfach zu deaktivieren.
Ich bin auf der Suche nach einem C# - Lösung, aber gerne mit einer C#/Javascript-Lösung.
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, fand eine ziemlich saubere Lösung:
in der code-behind:
in Javascript, Scannen Sie alle treeview-Knoten für diejenigen, die haben, die className, und deaktivieren Sie das Kontrollkästchen verbunden, um zu Ihnen:
if (textSpan.firstChild.className == "disabledTreeviewNode")
zuif (textSpan.className == "disabledTreeviewNode" || textSpan.firstChild.className == "disabledTreeviewNode")
Auf der 1. AnruftextSpan.className == "disabledTreeviewNode"
isttrue
, und nachfolgende Aufrufe von Ihr code funktioniert dertextSpan.firstChild.className == "disabledTreeviewNode"
. Nicht 100% sicher, ob ich verstehe, aber Sie beide Bedingungen diese Arbeit geleistet.JavaScript
in etwa 3 ZeilenjQuery
: stackoverflow.com/questions/18858842/...$(document).ready
jQuery Veranstaltung und zu den postback-end-Veranstaltung, und loszuwerden, die bösen server-side code.Leider habe ich nicht genug Ruf um in der Lage sein, um Kommentare direkt auf zukanta die Antwort, die ein bisschen wie ein Schmerz, aber ich musste eine änderung in der javascript um diese Arbeit zu machen:
d.h. ersetzen textSpan.firstChild.ClassName mit textSpan.ClassName
Auch darauf hinzuweisen, dass der JavaScript-Fehler aus, wenn alle Ihre Baum-Knoten in der Strukturansicht, die Sie ansprechen, haben eine
in Ihnen. Sie erhalten ein null-Verweis an
und keine nachfolgenden Knoten verarbeitet werden.
Bekam ich um diesen Punkt, indem ein span mit class=enabledTreeviewNode auf alle Knoten im Baum, dass ich nicht möchte deaktiviert.
Sie könnte auch die Ausnahme im JavaScript, denke ich.
Hoffe, dies hilft jemand, der stolpert über das (ansonsten hervorragende) Lösung später auf.
Könnten Sie die Einschränkung aus Sicherheitsgründen nicht zeigen Elemente, die der Benutzer nicht zugreifen. Ich weiß nicht, jeder Weg, um die Elemente angezeigt, aber nicht aktiv. Deaktivieren der Kontrollkästchen auf der client-Seite nur schaffen könnte, ein Sicherheits-Loch.
Exemplarische Vorgehensweise: Filtern von siteübersichtsknoten auf Security Rollen
ASP.NET Site-Map Sicherheit Trimmen
Die OP war auf der Suche für bedingte deaktivieren, aber ich will einfach verwenden Sie die Strukturansicht zum anzeigen der historischen Daten aus Audits, Protokolle, wenn Elemente wurden eingeschaltet.
Alle Checkboxen auf meiner Seite deaktiviert werden soll. Es hat mich einige Zeit zu finden, dieses elegante jQuery-Lösung. Ich hoffe es hilft jemand mit einem ähnlichen Problem.
Fügen Sie den folgenden code in Ihr Skript-Abschnitt. Wie alle Eingabefelder werden deaktiviert, es gibt keine Notwendigkeit, änderungen an alle Ihre codebehind.