asp.net - 将 runat ="server"添加到控件时,JQuery Mobile 会丢失样式

标签 asp.net css jquery-mobile runatserver

我正在尝试实现 JQuery Mobile 复选框,但它必须可以从服务器端访问。

这是常见的 JQM 复选框:

<input type="checkbox" name="chckTOC" id="chckTOCs" class="custom" />
<label for="chckTOCs">Include Table of Content</label>

Styled checkbox without runat="server"

当我将 runat="server"属性添加到复选框时,它会丢失它的样式。

And a the result with 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/

相关文章:

c# - 多个搜索框

c# - UserHostAddress 的代码是否相同?

c# - 无法从 'string' 转换为 'System.IFormatProvider'

html - 如何以编程方式在 JQM 中创建 ListView

javascript - Javascript 有像 FindControlRecursive 这样的函数吗?

jquery - 滑动改变文字颜色动画

html - 移动设备上的网站标题 div 问题

css - 正确对齐伪选择器图像

jQuery 移动 : Breaks When Reloading/Deep Linking/Bookmarking Pages Added to DOM via AJAX

javascript - ListView 的复选框未正确添加