【问题标题】:Using checkboxes with ASP.NET and Javascript在 ASP.NET 和 Javascript 中使用复选框
【发布时间】:2010-10-21 21:30:46
【问题描述】:

我有执行此操作的 Javascript 代码:

var oObjchbox = document.getElementById("CheckBox_" + countyId);

countyId 来自预先制作的图像地图。

另一方面,复选框是由 ASP.NET 创建的。我的第一次尝试是使用带有 asp:checkBox 的 asp.repeater,但这并没有成功,因为 ASP.NET 坚持创建自己的 ID。另一种尝试是在没有 runat=server 的情况下使用 HTML INPUT,但随后复选框无法在往返中存活。

有没有人能解决这个问题?我在这里发现了类似的问题 http://www.velocityreviews.com/forums/t301617-hijack-databoundliteralcontrol.html 但没有人回答他的问题。

【问题讨论】:

    标签: asp.net javascript input checkbox repeater


    【解决方案1】:

    你可以使用 jquery 来解决这个问题,它提供了通过自定义查询来选择元素的功能,例如

    $("[id*=CheckBox1") - 返回 id 结尾为 CheckBox1 的所有元素。

    $("[id^=CheckBox1") - 返回 id 开头为 CheckBox1 的所有元素。

    您可以通过包含单词和许多其他选择器找到。

    更多信息 jquery.com,你会喜欢的 =)

    【讨论】:

    • 非常有趣和有用的 jquery 函数,但不幸的是,它在中继器中对我没有帮助,因为我只能设置一个对所有中继器项目通用的 ID。然后 ASP.NET 将向 ID 添加唯一字符串。所以我无法将 CountyID 与生成的 asp.net ID 匹配。不过还是谢谢!
    【解决方案2】:

    如果您的目标是检测服务器上选中的复选框,为什么不创建一个隐藏字段并通过在每次单击时连接国家/地区 ID 来更新客户端以创建一个分隔列表,例如 usa;ca;nl?在回发中读取该值,解析,然后您就有了已选择的国家/地区。

    在您的 PageLoad 问题中:RegisterHiddenField("txtCountryCodes","");

    【讨论】:

      【解决方案3】:

      如果问题是从中继器中的复选框获取 ID,那么这篇文章可能会有所帮助,Select All Checkboxes in a GridView。它展示了如何在 ASP.Net Gridview 上生成客户端全选功能。

      您正在处理的问题并不少见。您想访问一个控件,该控件位于使用 JavaScript 重复布局(GridView、Repeater、DataList 等)的控件中。

      要记住的是,您可以在 DataBound 事件(RowDataBoundItemDataBound)期间访问生成的 ClientId,然后可以在客户端使用。 p>

      然后在回程中,因为这是一个标准控件,您应该能够找到它。但是,如果您使用的是中继器,那么更新数据可能需要更多的工作,因为控件本身更适合只读类型的显示。

      如果问题是将每个控件映射到预定义的 StateCode,那么在 ItemDataBound 或 RowDataBound(如果您从 Repeater 更改为其他)事件中,您可以根据需要使用 1 个或 2 个参数调用 JavaScript 方法。 currentCheckBoxId 和相应的 StateCode 单独或已经连接起来,并将其用作查找类型功能。

      很抱歉这两个答案,但问题似乎有点含糊不清,你实际上想做什么,也许我只是需要再喝一杯咖啡。希望这些想法之一有所帮助。

      【讨论】:

        猜你喜欢
        • 2017-11-15
        • 2011-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多