Код ASPX
<asp:RadioButtonList ID = "rbServer" runat = "server" > <asp:ListItem Value=<%=ServerDeveloper%>> Developer </asp:ListItemv <asp:ListItem Value = "dev.ahsvendor.com"> dev.test.com</asp:ListItem> <asp:ListItem Value = "staging.ahsvendor.com"> staging.test.com</asp:ListItem> </asp:RadioButtonList>
ASPX.CS - программный код
const string ServerDeveloper = "developer";
Ошибка ASPX: блоки кода не поддерживаются в этом контексте.
Вопрос: Итак, как правильно связать значение раскрывающегося списка / радио-кнопки / ... ASPX с константой, которая используется совместно с кодом CodeBehind?
Я знаю, что могу сделать rbServer.Add.Item ("разработчик") [из CodeBehind], но есть ли способ добиться этого со стороны презентации?





Будет ли это:
rbServer.Items.Add(ServerDeveloper)
Хорошо, раз уж вы хотите сделать это из презентации ... Это возможно, но ужасно некрасиво:
<div>
<% rbServer.Items.Add(new ListItem("Dev", ServerDeveloper)); %>
<asp:RadioButtonList ID = "rbServer" runat = "server">
<asp:ListItem Value = "Blah">Blah</asp:ListItem>
</asp:RadioButtonList>
</div>
Обратите внимание, что блок кода должен быть разметкой над - если вы поместите его ниже, это не сработает. Также обратите внимание, что константа должна быть защищена, чтобы страница могла получить к ней доступ. Для меня это ужасно похоже на хакерство, но вот оно.
Я согласен, что встроенный код уродлив. Я просто ожидал, что <% = ... сработает. Спасибо
Однако у него есть хорошая "деталь" использования константы в обеих областях.
Оглядываясь назад, лучшим решением было бы добавить его из выделенного кода с помощью rbServer.Items.Add ()
Я не согласен, если они являются постоянными значениями, их легче поместить в aspx, потому что при создании файлов ресурсов они автоматически генерируются в resx. Если вы добавите их в программный код, вам придется вручную связывать входы ресурсов с помощью GetLocalResoureObject () ...
В большинстве случаев я добавляю ListItems в список в коде, а не в разметке. Я предполагаю, что это решит вашу проблему (хотя я думаю, что здесь отсутствует некоторая информация). Создайте новые ListItems и добавьте их в коллекцию Items rbServer.
Обычно я стараюсь избегать элемента управления RadioButtonList именно по той причине, которую вы опубликовали. Хотя я не придумал простой в использовании альтернативы :(
Нам здесь не хватает какой-то информации? Исправьте код ASPX!