You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET(VS2008)提交按钮事件处理器:根据复选框选值返回结果

ASP.NET Web Forms 多CheckBoxList选择判断并跳转显示结果方案

1. 前端页面(Default.aspx)控件配置

先在Web窗体中添加三个CheckBoxList和提交按钮,配置好选项内容:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>选择测试</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h3>水果选择</h3>
        <asp:CheckBoxList ID="CheckBoxList1" runat="server">
            <asp:ListItem Text="apple" Value="apple"></asp:ListItem>
            <asp:ListItem Text="banana" Value="banana"></asp:ListItem>
            <asp:ListItem Text="orange" Value="orange"></asp:ListItem>
        </asp:CheckBoxList>
        
        <h3>肉类选择</h3>
        <asp:CheckBoxList ID="CheckBoxList2" runat="server">
            <asp:ListItem Text="Meat" Value="meat"></asp:ListItem>
            <asp:ListItem Text="Fish" Value="fish"></asp:ListItem>
        </asp:CheckBoxList>
        
        <h3>蔬菜选择</h3>
        <asp:CheckBoxList ID="CheckBoxList3" runat="server">
            <asp:ListItem Text="Lettuce" Value="lettuce"></asp:ListItem>
            <asp:ListItem Text="Carrot" Value="carrot"></asp:ListItem>
        </asp:CheckBoxList>
        
        <br /><br />
        <asp:Button ID="btnSubmit" runat="server" Text="提交" OnClick="btnSubmit_Click" />
    </div>
    </form>
</body>
</html>

2. 后端提交按钮事件处理器(Default.aspx.cs)

在代码文件中编写按钮点击逻辑,判断选中项并传递结果到新页面:

using System;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        // 检查目标选项是否被选中
        bool isAppleSelected = CheckBoxList1.Items.FindByValue("apple")?.Selected ?? false;
        bool isBananaSelected = CheckBoxList1.Items.FindByValue("banana")?.Selected ?? false;
        bool isLettuceSelected = CheckBoxList3.Items.FindByValue("lettuce")?.Selected ?? false;

        string result = "";

        // 匹配你需要的条件
        if (isAppleSelected && isBananaSelected && isLettuceSelected)
        {
            result = "vegetarian";
        }
        // 可扩展其他判断规则
        else if (CheckBoxList2.Items.FindByValue("meat")?.Selected ?? false)
        {
            result = "non-vegetarian";
        }
        else
        {
            result = "no matching category";
        }

        // 通过QueryString传递结果并跳转新页面
        Response.Redirect($"Result.aspx?result={result}");
    }
}

3. 结果页面(Result.aspx)实现

创建新的Web窗体用来显示结果:

前端代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Result.aspx.cs" Inherits="Result" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>结果页面</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="lblResult" runat="server" Text=""></asp:Label>
    </div>
    </form>
</body>
</html>

后端代码

using System;

public partial class Result : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // 获取传递的结果并显示
            string result = Request.QueryString["result"];
            if (!string.IsNullOrEmpty(result))
            {
                lblResult.Text = $"result= {result}";
            }
        }
    }
}

额外说明

  • 确保ListItem的Value属性和后端判断的字符串大小写一致(默认区分大小写)
  • 如果需要处理大量选中项,可通过遍历CheckBoxList.Items来获取所有选中内容:
foreach (ListItem item in CheckBoxList1.Items)
{
    if (item.Selected)
    {
        // 处理选中项逻辑
    }
}
  • VS2008中直接右键项目添加Web窗体,系统会自动关联代码文件。

内容的提问来源于stack exchange,提问作者Mohammad Assaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 23:35:06