【问题标题】:I need help setting the value of HTML value input type check box based on whether or not an ASP:Checkbox is checked我需要根据是否选中 ASP:Checkbox 来设置 HTML 值输入类型复选框的值
【发布时间】:2016-03-18 14:51:24
【问题描述】:

我的情况如下;

我正在将一些 Infopath 表单转换为 aspx Web 表单。在我的 aspx 表单中,大约有 50 个复选框。当最终用户提交表单时,它需要生成一个 html 格式的电子邮件给用户组。我对电子邮件生成没有任何问题,在我遇到的所有问题中,我无法弄清楚如何根据 asp 复选框设置 HTML 复选框的值。我将在下面举例说明我正在尝试做的事情。

<asp:CheckBox ID="RestraintCB" runat="server" Text="Restraint Event" />

如果上面的复选框被选中,在表单提交时,我需要 HTML 复选框被标记为选中。 现在,如果您知道如何从后面的代码中使用 C# 设置电子邮件,那么您就会理解我的沮丧。

InsMail.Body = @"<input id='RestraintCB' type='checkbox' />Restraint Event"

如果我还没有失去你,我只需要从 asp:CheckBox 获取真/假值到 HTML 输入类型复选框。请记住,整个电子邮件是由一个非常长的字符串生成的,我无法直接与任何 HTML 元素进行交互。

任何帮助将不胜感激。

【问题讨论】:

    标签: c# html asp.net checkbox


    【解决方案1】:

    我想出了一个解决方案,如果您能想到一个更简单的解决方案,将不胜感激。 好的,我们开始吧。请记住,我的表单中有大约 50 个 asp:CheckBox。好的,现在每个复选框都有一个 OnClick 事件。 OnClick 事件称为 Checkboxes_CheckChanged,其设置如下:

    protected void Checkboxes_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox chkBox = (CheckBox)sender;
        var chkBoxID = chkBox.ID;
        Label chkBoxLabel = (Label)FindControl(chkBoxID + "Label");
        if(chkBox.Checked == true)
        {
            chkBoxLabel.Text = "checked";
        }
        if(chkBox.Checked == false)
        {
            chkBoxLabel.Text = "";
        }
    }
    

    所以基本上,当我更改复选框的选中值时,它会更改其相应标签的文本,这当然是隐藏的。 所以如果我有;

    <asp:CheckBox ID="CheckBox1" runat="server" Text="CheckBox1" />
    

    有对应的标签;

    <asp:Label ID="CheckBox1Label" runat="server" Text="" Visible="false" />
    

    现在,当我生成电子邮件时,它是本质上是 InnerHtml 的一大块。 我将举例说明我是如何处理这个问题的;

    @"<input id='Checkbox1' type='checkbox'" + CheckBox1Label.Text + @" />";
    

    所以这将是一个非常大的部分,如果有人有其他建议,那就太好了。但就目前而言,这将起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      • 2018-09-03
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多