Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 复选框列表显示所有选定的框_C#_Asp.net_Checkboxlist - Fatal编程技术网

C# 复选框列表显示所有选定的框

C# 复选框列表显示所有选定的框,c#,asp.net,checkboxlist,C#,Asp.net,Checkboxlist,我提交表格并收到一封说明表格结果的电子邮件,在这种情况下,如果选中了三个复选框中的任何一个,则会出现这种情况。我目前的问题是,如果选中了多个复选框,则不会显示选中了第二个或第三个复选框 示例:我选中所有三个复选框我的结果是: 营销邮件:是的 第三方邮件:否 签证促销:否 什么时候应该显示为所有人都这样说是: if (OptList.Items[0].Selected) sb.Append("<b>Marketing Mailings:</b>&nbsp;Yes

我提交表格并收到一封说明表格结果的电子邮件,在这种情况下,如果选中了三个复选框中的任何一个,则会出现这种情况。我目前的问题是,如果选中了多个复选框,则不会显示选中了第二个或第三个复选框

示例:我选中所有三个复选框我的结果是:

  • 营销邮件:是的
  • 第三方邮件:否
  • 签证促销:否
什么时候应该显示为所有人都这样说是:

if (OptList.Items[0].Selected) sb.Append("<b>Marketing Mailings:</b>&nbsp;Yes<br />");
else sb.Append("<b>Marketing Mailings:</b>&nbsp;No<br />");

if (OptList.Items[1].Selected) sb.Append("<b>3rd Party Mailings:</b>&nbsp;Yes<br />");
else sb.Append("<b>3rd Party Mailings:</b>&nbsp;No<br />");
  • 营销邮件:是的
  • 第三方邮件:是
  • 签证促销:是的
我的头版代码:

<td class="nobor">
        <asp:CheckBoxList ID="OptList" runat="server">
        </asp:CheckBoxList>
在“我的提交”中,单击创建电子邮件正文的位置:

sb.Append("<u>Opt-Out Preference</u><br/>");

if (OptList.SelectedItem.Value == "1") sb.Append("<b>Marketing Mailings:</b>&nbsp;Yes<br />");
else sb.Append("<b>Marketing Mailings:</b>&nbsp;No<br />");

if (OptList.SelectedItem.Value == "2") sb.Append("<b>3rd Party Mailings:</b>&nbsp;Yes<br />");
else sb.Append("<b>3rd Party Mailings:</b>&nbsp;No<br />");

if (OptList.SelectedItem.Value == "3") sb.Append("<b>VISA Promotions:</b>&nbsp;Yes<br />");
else sb.Append("<b>VISA Promotions:</b>&nbsp;No<br />");
sb.Append(“选择退出偏好
”); 如果(OptList.SelectedItem.Value==“1”)某人追加(“营销邮件:是
”); 其他人追加(“营销邮件:无
”); 如果(OptList.SelectedItem.Value==“2”)某人追加(“第三方邮件:是
”); 其他人追加(“第三方邮件:无
”); 如果(OptList.SelectedItem.Value==“3”)某人追加(“VISA促销:是
”); 其他人追加(“签证促销:无
”);
选择的编辑项将返回一个项目,而不是所有项目。
您应该将代码修改为以下内容:

if (OptList.Items[0].Selected) sb.Append("<b>Marketing Mailings:</b>&nbsp;Yes<br />");
else sb.Append("<b>Marketing Mailings:</b>&nbsp;No<br />");

if (OptList.Items[1].Selected) sb.Append("<b>3rd Party Mailings:</b>&nbsp;Yes<br />");
else sb.Append("<b>3rd Party Mailings:</b>&nbsp;No<br />");

这将返回所选的所有值的列表…

您在代码中检查和/或获取所有已检查项的位置。。您需要利用ListItems上的foreach循环。如果您正在执行某种按钮单击,则可能应该在if(!IsPostBack)上添加一条Else语句,以便在u DoPostBack完成其工作/页面渲染后查看选中的项我已编辑了您的标题。请看,“,其中的共识是“不,他们不应该”。明白了,这是有道理的!谢谢,我会处理这些。@kcray也会更新以帮助您提取所选的值。。。祝您好运:)再次感谢您的第一个示例在进行了一次修改后运行良好,它需要是OptList.Items,而不是OptList.Item。谢谢,节省了我很多时间!
var ListOfSelectedValues = OptList.Items.Cast<ListItem>().Where(x => x.Selected).Select(x => x.Value).ToList();