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

2023-12-05

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

另外,我对如何将数据附加到它们(通过将其填充到 ID 属性中)不太满意。

我不确定它是否相关,但我正在考虑一些第 22 条军规,因为我需要知道创建了哪些复选框上次在我可以重新运行创建它们的代码之前进行了检查。


Edit:我已经找到了一个几乎解决方案。通过设置AutoPostBack财产和CheckedChanged event:

checkbox.AutoPostBack = false;
checkbox.CheckedChanged += new EventHandler(checkbox_CheckedChanged);

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

  • 回调是在之后(或期间,我不确定)处理的Page_Load我需要在哪里使用这些信息
  • 对于页面加载时已选中且仍然处于选中状态的复选框,不会调用回调。

Edit 2:

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

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

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


我假设您使用的是 DataList,但这应该与可以模板化的 Control 一起使用。我还假设您正在使用数据绑定。

代码正面:

<asp:DataList ID="List" OnItemDataBound="List_ItemDataBound" runat="server">
    <ItemTemplate>
        <asp:CheckBox ID="DeleteMe" runat="server"/>
        <a href="<%# DataBinder.Eval(Container, "DataItem.Url")%>" target="_blank">
            <%# DataBinder.Eval(Container, "DataItem.Title")%></a>
    </ItemTemplate>
</asp:DataList>
<asp:Button ID="DeleteListItem" runat="server" OnClick="DeleteListItem_Click" ></asp:Button>

背后代码:

public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            LoadList();
    }

    protected void DeleteListItem_Click(object sender, EventArgs e)
    {
        foreach (DataListItem li in List.Items)
        {
            CheckBox delMe = (CheckBox)li.FindControl("DeleteMe");

            if (delMe != null && delMe.Checked)
                    //Do Something
            }
        }

        LoadList();
    }

    protected void LoadList()
    {
        DataTable dt = //Something...
        List.DataSource = dt;
        List.DataBind();
    }

    protected void List_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
        {
            string id = DataBinder.Eval(e.Item.DataItem, "ID").ToString();
            CheckBox delMe = (CheckBox)e.Item.FindControl("DeleteMe");

            if (delMe != null)
                delMe.Attributes.Add("value", id);                
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式创建和使用 ASP.NET 中的复选框列表? 的相关文章

  • ASP.NET WebApi - 一个控制器中的多个 GET 操作

    I have Users控制器和基本 REST 模式工作得很好 不过我需要一种额外的模式users id usergroups这将返回该用户的所有用户组 实现这一点的最佳方法是什么 因为我想我将需要在更多控制器上使用类似的路由 仅使用默认值
  • 使用 jQuery 获取 ASP.Net Gridview 的 rowIndex

    您好 是否可以使用 jQuery 获取 gridview 的当前行索引 一点背景 我使用模板字段中的服务器端链接按钮从 gridview 中删除行 如下所示
  • 我的机器密钥是自动生成的还是隔离的?

    我正在尝试分享 ASPXAUTHASP NET MVC 4 应用程序 在 IIS 7 5 中 和使用的服务之间的 cookieHttpListener在同一主机上 浏览器正确地向两者呈现 cookie 但我的服务收到System Web H
  • 在运行时设置 DataGridView 上的 DataFormatString?

    是否可以在运行时设置 ASP NET DataGridView 中的列或单元格的 DataFormatString 属性 这应该有效 BoundField priceField grid Columns 0 as BoundField pr
  • 通过 jQuery 从输入类型=“文件”多个中删除文件

    我在使用 PHP 和 jQuery 上传文件时遇到问题 表单可以一次上传多个图像 这些图像可以在滑块中预览 表单还包含两个字段标题和描述 滑块通过 jQuery 工作 当用户通过单击选择文件来选择多个图像时
  • 设置asp.net验证器的顺序

    我使用 3 个验证器来验证文本框 但当在文本框中输入无效值时 所有验证器都会被触发 但我希望这些验证器按照特定的顺序工作 以便用户可以一一解决这些错误
  • ASP.NET MVC ActionFilterAttribute 在模型绑定之前注入值

    我想创建一个自定义操作过滤器属性 该属性在模型绑定期间可访问的 HttpContext 项中添加一个值 我尝试将其添加到 OnActionExecuting 中 但似乎模型绑定是在过滤器之前执行的 你知道我该怎么做吗 也许模型绑定器中有一个
  • Calendly 未在 Webflow 中预填写表单

    我在 Webflow 项目中使用 Calendly 并且它有效 不过 我想在 Calendly 中预先填写表格 这里有一个指南 https help calendly com hc en us articles 226766767 Pre
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • ASP.NET Click() 事件在第二次回发时不会触发

    我有一个 ASP NET Web 表单 我第一次提交表单时 会引发 提交按钮单击 事件 表单返回到浏览器时可能会出现验证错误 或者可以选择使用新值再次提交表单 当再次提交表单时 提交按钮单击 事件永远不会触发 Page Load 触发 但按
  • 从静态方法调用 Response.TransmitFile()

    我有许多页面需要支持将数据导出到 Excel 电子表格 我可以很好地生成 Excel 文件 但我正在尝试找出如何抽象此行为 以便可以轻松地从我需要它的所有页面中重用它 我目前的想法是使用静态实用方法 如下 public static voi
  • 如何使用 ASP.NET 和 jQuery 返回 JSON

    我不知道如何用我的代码返回 JSON 数据 JS function ajax type POST url Default aspx GetProducts data contentType application json charset
  • 处理长时间运行的报告

    我正在开发一个用 C 和 Sql Server 2000 数据库编写的 ASP net 应用程序 我们有多个 PDF 报告供客户用于满足其业务需求 问题是这些报告需要一段时间才能生成 gt 3 分钟 通常最终发生的情况是 当用户请求报告时
  • 您可以使用 JavaScript 触发自定义 HTML5 表单错误吗?

    如果我有一个像这样的输入
  • PHP $_FILES 多个文件上传问题

    我在 PHP 中上传多个文件时遇到一个小问题 我有这个 html 表单
  • Automapper、Mapper 未初始化。使用正确的配置调用初始化

    当我尝试将数据提交到数据库时 出现以下错误 Success false Error true ErrorType 2 Message System InvalidOperationException Mapper 未初始化 使用适当的配置调
  • 提交前验证表单(比检查空字段更复杂)

    我有一个包含时间输入的表单 具体来说 开放时间和结束时间 当按下提交按钮时 它会转到一个 php 页面 其中这些输入将添加到数据库中 在允许提交表单之前我想检查一些事情 例如 我想确保开始时间早于 小于 结束时间 这是表格 Opens
  • Django 接受 AM/PM 作为表单输入

    我试图弄清楚如何使用 DateTime 字段在 Django 中接受 am pm 作为时间格式 但我遇到了一些麻烦 我尝试在 forms py 文件中这样设置 pickup date time from DateTimeField inpu
  • 向客户端发送状态码 500 时页面未呈现

    我有一个页面 通用处理程序 我想在该页面上向客户端返回状态代码 500 以指示出现问题 我这样做 Response StatusCode 500 Response StatusDescription Internal Server Erro

随机推荐

  • 无法共同创建对象

    我在 net中创建了一个dll 并使用jacob从java程序中调用它 因为昨天我有Windows 7 32位操作系统 所以程序成功运行 现在我格式化并安装了Windows 7 64位操作系统 所以遇到以下错误 com jacob com
  • div 上的全角背景颜色

    我正在使用 1120px css 响应式框架 或者它可以在我需要时充当固定网格 我在 1120px 容器 div 内有一个 div 我想在其上应用全宽背景颜色 div 的背景颜色当然仅位于容器 div 内部 我想让它填充 body 元素的整
  • 如何计算形状相交的多边形数量?

    我有一个非常大的数据集 其中包含多边形和点 周围有缓冲区 我想在点数据中创建一个新列 其中包括点缓冲区相交的多边形数量 这是一个简化的例子 import pandas as pd import geopandas as gp from sh
  • 如何分析混淆矩阵?

    当我打印 scikit learn 的混淆矩阵时 我收到一个非常巨大的矩阵 我想分析什么是真阳性 真阴性等 我该怎么做 这就是我的混淆矩阵的样子 我希望更好地理解这一点 4015 336 0 0 0 2 228 2704 0 0 0 0 4
  • 在 Java Swing 中检查点是否在线

    我画了一条线 然后画了一个点 然后我想检查该点是否在线上 我在数组中获取了一条线坐标 因为有多条线 我想检查最后一行的当前点吗 if positionX1 positionX2 positionY1 positionY2 float m l
  • 使用 C# 的电子邮件中的多个附件文件

    如何使用 C 在电子邮件中附加多个文件 MailMessage mail new MailMessage SmtpClient SmtpServer new SmtpClient smtp gmail com get the userID
  • 如何在ubuntu上编译curlpp?

    下面是使用curl的简单test c代码 include
  • 使用 matcher() 匹配字符串中的小数

    我有一个关于匹配器的问题 目前我正在尝试读取一个字符串并将所有数字存储到一个数组中 我的问题是 你如何尝试匹配整数和小数 我有一个双打数组 名为 double thisArray new double 20 在这个数组中 我试图存储从字符串
  • HTML5 Web 语音 API 无法在本地运行

    我试图让这段代码工作 但不知道为什么它在本地不起作用 我在 CodePen io 上尝试了同样的方法 它有效
  • jQuery 提交表单无需重新加载页面

    好的 所以我正在尝试使用 jquery 和经典 ASP 从我的网站创建一个新的登录表单 截至目前 我的文档中有一个包含 div 该 div 设置为隐藏 然后当用户选择登录链接时 div 将淡出并覆盖带有表单的页面 如果用户单击提交 页面将
  • 处理禁用节点上的事件

    有什么方法可以处理鼠标单击 例如在禁用的元素上 我的任务是禁用列表并在双击它后将其启用 禁用的节点不会接收鼠标或按键事件 See the 官方文档 您可以将该节点包装到另一个节点中 并在那里处理鼠标事件 以防子节点被禁用
  • 如何在 asp.net 3.5 中会话超时时将用户重定向到默认页面

    我只想在 asp net 3 5 中会话过期时将用户重定向到主页 Default aspx 我只是用网络用户控制来做到这一点 但钢它不能完美地工作 所以我只想用 web config 来做到这一点
  • 多态性不适用于使用 MessagePack-Csharp nuget 的集合元素

    我无法反序列化实例之间具有继承关系的元素集合 有人遇到过这个问题吗 所以我的用例是这样的 我的模型与此类似 DataContract public class Item DataMember public int Id get set Da
  • 索引签名参数类型不能是联合类型。考虑使用映射对象类型代替

    我正在尝试使用以下模式 enum Option ONE one TWO two THREE three interface OptionRequirement someBool boolean someString string inter
  • 如何在自定义编译表达式中使用bindparam()?

    我的代码基于 zzzeeek 的回答这个问题 我对其进行了一些扩展 因此它考虑了 Postgresql 的 NULL 和 ARRAY class values FromClause named with column True def in
  • 如何获取XMLHttpRequest的响应?

    我想知道如何使用 XMLHttpRequest 加载远程 URL 的内容并将所访问站点的 HTML 存储在 JS 变量中 比如说 如果我想加载并alert HTMLhttp foo com bar php 我该怎么做 你可以通过以下方式获取
  • 重复 B 列中的值,直到 python 中 A 列发生变化

    我是 python 新手 有一个疑问 我需要在 B 列中重复该值 直到 A 列发生更改 这是示例数据 A B 18 1 18 0 18 0 24 2 24 0 24 0 24 0 10 3 10 0 10 0 我想要怎样的输出 Column
  • 如何解决解析带有西里尔字母符号的html文件的问题?

    我有一些带有 span 元素的 html 文件 span class one Text span some text span class two span 要获取 一些文本 coding cp1251 import lxml from l
  • ASP.NET Core 应用程序在发布到 Azure 后无法运行

    我有一个 ASP NET Core 应用程序 在本地运行良好 然而 当我publish Web 部署 将站点部署到 Azure 我得到403 You do not have permission to view this directory
  • 如何以编程方式创建和使用 ASP.NET 中的复选框列表?

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