c# - 以编程方式将标签放在 div 或标签中

标签 c# asp.net

我想将标签(或 div)的值设置为元素而不是文本。

例如,此代码创建了一个复选框列表,如下文中所述 How to use Checkbox inside Select Option :

<asp:Label runat="server" id="checkboxesList">
  <label for="one">
     <input type="checkbox" id="one" />First checkbox</label>
  <label for="two">
    <input type="checkbox" id="two" />Second checkbox</label>
  <label for="three">
    <input type="checkbox" id="three" />Third checkbox</label>
</asp:Label>

我需要在 CodeBehind 中创建列表,而不是直接在我试过的 ASPX 中创建:

checkboxesList.Text = "<label for=\"one\"> < input type = \"checkbox\" id = \"one\" /> First checkbox </ label > <label for= \"two\" > < input type = \"checkbox\" id = \"two\" /> Second checkbox </ label >";

这样做只会打印为字符串,不会创建差异标签。 如何从后面的代码中实现它:

<asp:Label runat="server" id="checkboxesList">
</asp:Label>

最佳答案

不必使用服务器端控件来生成所有 HTML 元素。可以直接将 HTML 用于容器元素。仅对应可从服务器代码访问的元素使用服务器端控件。

<div id="checkboxes">
    <label>
        <asp:CheckBox ID="one" runat="server" Text="First checkbox" />
    </label>
    <label>
        <asp:CheckBox ID="two" runat="server" Text="Second checkbox" />
    </label>
    <label>
        <asp:CheckBox ID="three" runat="server" Text="Third checkbox" />
    </label>
</div>

该代码段允许您在服务器端获取/设置复选框的值和文本。此外,您还可以为每个复选框添加服务器端点击事件处理程序。

请注意, for 属性用于绑定(bind) <label><input>没有放在 <label> 里面.此外,IE 不支持该属性。因此,在您的情况下,可以将复选框放入标签中,而不是使用 for属性。

您还需要了解 HTML id一般情况下属性不等于 ASP ID值(value)。因此,如果您想使用 for 链接控件属性,然后设置 id属性值通过 ClientID 属性(property)。

关于c# - 以编程方式将标签放在 div 或标签中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52814473/

相关文章:

c# - XML解析错误

C# 设计模板容器?

c# - 每次回发后的 Chrome realod 图像 - updatepanel

c# - 如何在android中获取wcf服务的自定义消息头

c# - asp.net中实现证书授权

jquery - 添加其中包含 javascript 的用户控件会破坏 jquery-ui

ASP.NET - 对象数据源 : using multi-select ListBox as ControlParameter

c# - DataGridTemplateColumn.HeaderTemplate 问题

c# - ECDH Nodejs 和 C# key 交换

c# - 显示常见 EF 删除语句与引用约束冲突的友好错误