我正在尝试实现 JQuery Mobile 复选框,但它必须可以从服务器端访问。
这是常见的 JQM 复选框:
<input type="checkbox" name="chckTOC" id="chckTOCs" class="custom" />
<label for="chckTOCs">Include Table of Content</label>
当我将 runat="server"属性添加到复选框时,它会丢失它的样式。
我尝试过使用<asp:Checkbox>
但仍然没有达到预期的 JQM 风格。
有什么想法可以让控制服务器可用并且仍然可以设计吗?
已解决查看答案
最佳答案
感谢评论部分的 friend ,我找到了原因。渲染时,复选框 ID 将从 chckTOC
更改为至cpmain_chckTOC
并且标签无效。我已将标签标记更改为 <label for='cpmain_chckTOC' />
现在我有了一个符合预期的全新样式的复选框。
我还设法避免了这个硬编码 ID -> <label for='cpmain_chckTOC' />
,因为这会是一个问题,例如,如果您的复选框位于 APS 中继器内 - 那么每个复选框 id 都会不同,例如 “cpmain_repeaterid_chckTOC_1” 和 “cpmain_repeaterid_chckTOC_2”等等。在这种情况下,硬编码的 id 不会帮助你。
相反,我仅使用 ASP.NET 控件就做到了:
<asp:CheckBox runat="server" ID="chckSelectAll" CssClass="custom" />
<asp:label id="lblForChckAll" AssociatedControlID="chckSelectAll" runat="server" />
现在结果符合预期:
关于asp.net - 将 runat ="server"添加到控件时,JQuery Mobile 会丢失样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17546741/