我有一个CheckListBox并指定项目上的工具提示。在呈现时,它显示复选框(和标签)周围的跨度,它是具有title属性的跨度,而不是复选框(输入类型=复选框)。ASP.NET CheckListBox 508合规
有谁知道如何设置输入元素,而不是周围跨度的标题属性?
为了符合508,我需要在输入元素上具有title属性,而不是在span上。
编辑:请注意,我宁愿在服务器端的C#中进行所有必要的更改。我宁愿不必在JavaScript/jQuery中做它。
我有一个CheckListBox并指定项目上的工具提示。在呈现时,它显示复选框(和标签)周围的跨度,它是具有title属性的跨度,而不是复选框(输入类型=复选框)。ASP.NET CheckListBox 508合规
有谁知道如何设置输入元素,而不是周围跨度的标题属性?
为了符合508,我需要在输入元素上具有title属性,而不是在span上。
编辑:请注意,我宁愿在服务器端的C#中进行所有必要的更改。我宁愿不必在JavaScript/jQuery中做它。
我张贴之前,我应该已经测试。最快的方法是使用老式的html控件,属性runat =“server”。然后你可以通过他们的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>
去过那里。无论如何,JavaScript无法帮助您,因为它不会更改源代码。
这应该修复它为您提供:
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
foreach(ListItem li in CheckBoxList1.Items){
li.Attributes["title"] = "my title";
}
}
是的,已经尝试过,但标题属性只是设置在跨度而不是输入。任何其他想法? – 2012-07-20 01:16:18
Ed,请参阅下面我的下一个解决方案。这将起作用,尽管你的标记有点乏味。 – 2012-07-20 20:52:22
另一个解决方案,特别是如果你想拥有一个可重复使用的508兼容控件,就是编写你自己的自定义控件。我之前没有提供代码,但我在这里找到了一个应该让您获得良好开端的示例 - http://www.jijeesh.8m.com/Articles/CustomCheckBoxList.html – 2012-07-22 19:46:32
我很害怕那个...... – 2012-07-23 19:32:59
竟然竟然联系了微软。基于他们实现它的时髦方式,没有办法访问CheckBoxList中各个复选框的输入元素。他们建议在复选框中使用具有CheckBoxes的TemplateField的GridView或具有CheckBoxes和InputAttributes的Repeater来设置title属性。 – 2012-08-06 04:30:50
这取决于你正在构建的东西,但是与Repeater控件相比,GridView可能会在视图状态中增加更多开销。假设您将数据提交给代码隐藏而不是Web服务或其他内容,则您必须在代码隐藏方面做更多工作才能从提交的控件获取值。 – 2012-08-06 13:49:16