2

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

这是通常的 JQM 复选框:

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

没有 runat= 的样式复选框

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

结果是 runat=

我试过使用<asp:Checkbox> 但仍然没有预期的 JQM 风格。

任何想法如何使控制服务器可用并且仍然需要样式?

解决了看答案

4

1 回答 1

3

感谢评论区的大佬,我找到了原因。呈现时,复选框 id 从更改为chckTOCtocpmain_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" />

现在结果正如预期的那样:

于 2013-07-09T11:53:47.593 回答