我有一个带有复选框的WebForm。我需要根据环境设置对两件事做不同的事情。
- 添加类
-
添加文本属性,以便创建标签
<% if setting == true) { %> <asp:CheckBox ID="optionCheckbox" class="option-checkbox radio-checkbox" runat="server" Text="Label Text"/> <% } else { %> <asp:CheckBox ID="optionCheckbox" class="option-checkbox" runat="server"/> <% } %>
问题在于页面不会呈现,因为ID是相同的,即使只有一个人可以渲染。JavaScript还有很多其他处理,因此我不希望每种情况不同。
我能够通过仅保留"基本"复选框代码来解决此问题,然后覆盖Prerender事件以添加类并在此处设置文本属性。
<asp:CheckBox ID="optionCheckbox" class="option-checkbox" runat="server"/>
代码背后:
CheckBox optionCheckbox = this.optionCheckbox as CheckBox;
if (optionCheckbox != null)
{
optionCheckbox.Text = "Label Text";
optionCheckbox.Attributes.Add("class", "option-checkbox radio-checkbox");
}
我仍然想知道是否有一种方法在标记文件中执行此操作。
对不起此语法,我不使用ASPNET网页。您可以逻辑地实现它。
首先,定义类和文本变量并为业务设置值。
最终设置checkbox
class
和Text
值
var class = "option-checkbox";
var text = "";
if(setting == true)
{
class = "option-checkbox radio-checkbox";
text = "Label Text";
}
<asp:CheckBox ID="optionCheckbox" class="setClassProperty" runat="server" Text="SetTextProperty"/>