我有一个带有复选框的网络表单。我需要根据环境设置做两件事。
添加Text属性,以便创建标签
<% 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处理,所以我不想为每个场景设置不同的ID。
答案 0 :(得分:1)
我能够通过保留下面的“base”复选框代码然后覆盖PreRender事件来添加类并在那里设置Text属性来解决这个问题。
<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");
}
我仍然想知道是否有办法在标记文件中执行此操作。
答案 1 :(得分:0)
对此语法感到抱歉,我不使用ASPNet webPage。 你可以逻辑地实现它..
首先,定义类和文本变量并为业务设置值。
最后按变量设置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"/>