ASP.NET CheckListBox 508合规性

时间:2012-07-19 22:10:37

标签: asp.net checkbox section508

我有一个CheckListBox并在项目上指定ToolTip。渲染时,它会显示复选框(和标签)周围的跨度,它是具有标题属性的跨度,而不是复选框(输入类型=复选框)。

有谁知道如何在输入元素而不是周围的跨度上设置title属性?

为了符合508标准,我需要在输入元素上使用title属性,而不是在span上。

编辑:请注意,我更愿意在服务器端对C#进行所有必要的更改。我宁愿不必在javascript / jquery中这样做。

2 个答案:

答案 0 :(得分:1)

去过那儿。无论如何JavaScript都不会帮助你,因为它不会改变源代码。

这应该为你解决:

protected override void OnPreRender(EventArgs e)
{
    base.OnPreRender(e);
    foreach(ListItem li in CheckBoxList1.Items){
            li.Attributes["title"] = "my title";
        }
}

答案 1 :(得分:1)

我应该在发布前测试过。最快的方法是使用属性为runat =“server”的旧式html控件。然后,您可以通过其ID引用您的个人复选框。例如:

<asp:Panel ID="BrowserCheckBoxList" runat="server">
    <ul>
        <li><input id="CheckBoxList1_0" type="checkbox" name="" value="Chrome" title="Chrome" runat="server" /> <label for="CheckBoxList1_0">Chrome</label></li>
        <li><input id="CheckBoxList1_1" type="checkbox" name="" value="FireFox" title="FireFox" runat="server" /> <label for="CheckBoxList1_1">FireFox</label></li>
        <li><input id="CheckBoxList1_2" type="checkbox" name="" value="IE" title="IE" runat="server" /> <label for="CheckBoxList1_2">IE</label></li>
        <li><input id="CheckBoxList1_3" type="checkbox" name="" value="Opera" title="Opera" runat="server" /><label for="CheckBoxList1_3">Opera</label></li>
        <li><input id="CheckBoxList1_4" type="checkbox" name="" value="Safari" title="Safari" runat="server" /><label for="CheckBoxList1_4">Safari</label></li>
    </ul>
</asp:Panel>