C # (ASP.Net) Verknüpfen von Auswahlwerten mit Konstanten in Codebehind

ASPX-Code

    Developer  dev.test.com
    staging.test.com

ASPX.CS - Codebehind

const string ServerDeveloper = "developer";

ASPX Error: Code blocks are not supported in this context.

Question: So what is the correct way to tie an dropdown/radio buttion/... ASPX value to a constant that is shared with the CodeBehind code?

Ich weiß, dass ich rbServer.Add.Item ("Entwickler") [vom CodeBehind] tun könnte, aber gibt es einen Weg, um es von der Präsentationsseite der Dinge zu erreichen?

4
Fehlt uns hier etwas? Bitte korrigieren Sie den ASPX-Code!
hinzugefügt der Autor Torbjørn, Quelle

4 Antworten

Wäre es:

rbServer.Items.Add(ServerDeveloper)

Ok, also da du es von der Präsentation aus machen willst ... Es ist möglich, aber schrecklich hässlich:

<div>
<% rbServer.Items.Add(new ListItem("Dev", ServerDeveloper)); %>

    Blah

</div>

Beachten Sie, dass der Codeblock über das Markup sein muss - wenn Sie es unten einfügen, scheint es nicht zu funktionieren. Beachten Sie auch, dass das const geschützt werden muss, damit die Seite darauf zugreifen kann. Das fühlt sich schrecklich wie ein Hack für mich an, aber da ist es.

3
hinzugefügt
Ich stimme zu, dass der Inline-Code hässlich ist. Ich habe nur erwartet, dass
hinzugefügt der Autor Jason V, Quelle
Es hat jedoch das nette "Detail", die Konstante in beiden Arenen zu verwenden.
hinzugefügt der Autor Jason V, Quelle

In den meisten Fällen füge ich die ListItems der Liste im Codebehind, nicht im Markup hinzu. Ich schätze, dass das Ihr Problem lösen wird (obwohl ich denke, dass uns hier einige Informationen fehlen). Erstellen Sie neue ListItems und fügen Sie sie der Items-Sammlung von rbServer hinzu.

0
hinzugefügt

Im Rückblick wäre die bessere Lösung, sie aus dem Codebehind mithilfe von rbServer.Items.Add() hinzuzufügen.

0
hinzugefügt
Ich stimme nicht zu, wenn sie konstante Werte sind, ist es einfacher, sie in aspx zu setzen, weil sie beim Generieren von Ressourcendateien automatisch im resx erzeugt werden. Wenn Sie sie im Codebehind hinzufügen, müssen Sie die Ressourceneingänge manuell mit GetLocalResoureObject() verknüpfen ...
hinzugefügt der Autor Peter, Quelle

Im Allgemeinen versuche ich, das RadioButtonList-Steuerelement aus genau dem Grund zu vermeiden, dass Sie gepostet haben. Obwohl ich keine einfach zu verwendende Alternative gefunden habe :(

0
hinzugefügt