如何以编程方式创建和使用来自 ASP.NET 的复选框列表?

BCS*_*BCS 5 forms asp.net checkbox

我有一个包含内容表的页面,我需要允许用户选择要处理的行。我已经想出了如何向表格中添加一列复选框,但我似乎无法弄清楚如何测试提交表单时它们是否被选中。如果它们是静态元素,我可以只检查 dothis.theCheckBox但它们是通过编程生成的。

此外,我对如何将我的数据附加到它们(通过将其塞入 ID 属性中)的方式也不太满意。

我不确定它是否相关,但我正在查看一些 catch-22,因为我需要知道在我重新运行创建它们的代码之前检查了上次创建的哪些复选框。


编辑: 我找到了一个几乎解决方案。通过设置AutoPostBack属性和CheckedChanged事件:

checkbox.AutoPostBack = false;
checkbox.CheckedChanged += new EventHandler(checkbox_CheckedChanged);
Run Code Online (Sandbox Code Playgroud)

对于任何已更改的复选框,我可以在回发时调用代码。然而这有两个问题:

  • 回电是Page_Load在我需要使用此信息之后(或期间,我不确定)处理的
  • 不会为页面加载时选中的复选框调用回调。

编辑2:

我最终做的是用一个知道前缀标记我的所有 ID 并将其填充在顶部Form_Load

foreach (string v in this.Request.Form.AllKeys)
{
    if (v.StartsWith(Prefix))
    {
        var data = v.Substring(Prefix.Length);
    }
}
Run Code Online (Sandbox Code Playgroud)

其他一切似乎都晚了。

BCS*_*BCS 0

我最终做的是用已知前缀标记我的所有 ID,并将其填充在顶部Form_Load

foreach (string v in this.Request.Form.AllKeys)
{
    if (v.StartsWith(Prefix))
    {
        var data = v.Substring(Prefix.Length);
    }
}
Run Code Online (Sandbox Code Playgroud)

其他一切似乎都已经晚了。