ASP.NET C# ListBox-server-Steuerelement nicht deaktivieren
Ich habe 4 server-side-ListBox-Steuerelementen. Alle von Ihnen haben Ihre Enabled-Eigenschaft auf false gesetzt wird, aber beim Rendern sind Sie auf jeden Fall aktiviert. Sie sind alle mehrere auswählen. Diese haben keine Datenbindung oder code hinter Sie zu berühren. Unten ist das markup für alle von Ihnen (speichern Sie die ID). Ich bin mit v4 der .NET Framework mit IIS6.
<asp:ListBox runat="server" ID="lstProduct" Enabled="false" SelectionMode="Multiple" Rows="6"></asp:ListBox>
Hier ist der markup-Code, der erzeugt wird, indem die Laufzeit:
<select size="6" name="ctl00$ctl00$MainContent$MainContent$lstProduct" multiple="multiple" id="MainContent_MainContent_lstProduct" class="aspNetDisabled">
Wenn Sie ein Quelltext anzeigen " im browser, ist die Kontrolle der Darstellung, wie Sie erwartet haben?
Der HTML-Quelltext nicht das disabled="disabled", aber alle anderen markup korrekt ist. Es umfasst jedoch class="aspNetDisabled", aber diese Klasse ist nirgends zu finden, indem alle meine Stylesheets oder irgendwelche eingespritzt wird, durch ASP.NET.
Der HTML-Quelltext nicht das disabled="disabled", aber alle anderen markup korrekt ist. Es umfasst jedoch class="aspNetDisabled", aber diese Klasse ist nirgends zu finden, indem alle meine Stylesheets oder irgendwelche eingespritzt wird, durch ASP.NET.
InformationsquelleAutor Jacob K | 2010-09-14
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe eine Lösung gefunden. In der
<system.web>
Abschnitt von web.config, müssen Sie<pages controlRenderingCompatibilityVersion="3.5">
.Mit Asp.net 4.0, keine Kontrolle die nicht-spezifische Benutzer-Eingabe (textbox oder Passwort), wird nicht gerendert werden mit einem
disabled="disabled"
- Attribut, wennControl.Enabled = false
eingestellt ist.InformationsquelleAutor Jacob K
Versuchen Sie dies:
Um es zu entfernen, können Sie einfach entfernen Sie die deaktivierten tag wie diesem:
InformationsquelleAutor CLaff
Eine bessere Lösung ist es, zu Erben von der ListBox-Klasse und überschreiben Sie die SupportsDisabledAttribute Eigenschaft. Detaillierte Informationen finden Sie in MSDN library
z.B.
InformationsquelleAutor Pavel2lety
Schreiben Sie die folgende Zeile in die .cs-Datei
ListBox.Attribute.Fügen Sie("disabled", "true");
InformationsquelleAutor Pulkit
Dies sollte berücksichtigt werden, ein Fehler in der .Net Framework.
http://www.asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770141 sagt:
Siehe auch Begründung für die änderung (rendering Gültiger html-Code) an http://msdn.microsoft.com/en-us/library/system.web.ui.control.renderingcompatibility.aspx.
Aber ein Listenfeld dient zur Benutzer-Eingabe und die disbled-Attribut ist in html unterstützt, also sollte es Rendern
disabled="disabled"
.InformationsquelleAutor franzo
Kann man mit ein wenig jquery als Wundpflaster, bis diese richtig fest. Wenn man diese irgendwo, dass der Lauf für alle Seiten, die es zu beheben es für alle Behinderten Listboxen auf allen Seiten:
InformationsquelleAutor franzo
Möchten Sie vielleicht stattdessen deaktivieren Sie die Optionen in der select-box, so kann scrollen.
Dann verwende ich den folgenden CSS -, so kann der Benutzer immer noch sehen, vorgewählte Einzelteile.
Leider aus meiner ersten Ermittlungen es ist ein bisschen wie ein Schmerz zu Stil deaktiviert input-Elemente in einem schönen cross-browser Weg. Ich habe setteled mit der Verwendung einer Klasse für meine Zwecke, aber diese Artikel über styling disabled form-Elemente helfen könnte.
Möglicherweise bemerken Sie auch, dass im IE, klicken Sie auf Veranstaltungen werden immer noch ausgelöst werden, die schien zu deaktivieren Sie die Optionen, die jedoch nur in einigen Kombinationen zu versuchen, um [disabled='disabled'][selected='selected'] oder :geprüft:ausgewählte usw.
InformationsquelleAutor Alex KeySmith
Ich hatte das gleiche problem, aber mit
CheckBoxList
.Einstellung seiner
Enabled
- Eigenschaft auf false nicht deaktivieren. Die Anzeige drin war, würde das auch keinen Effekt haben, wennEnabled = false
.Die Lösung war die Verwendung eines
foreach
Schleife über die Elemente in der CheckBoxList.InformationsquelleAutor Will Newton