代码之家  ›  专栏  ›  技术社区  ›  Arnkrishn

ASP.NET-单击按钮时向服务器传递参数

  •  3
  • Arnkrishn  · 技术社区  · 15 年前

    我有一个ASP.NET网页,其中包含一个复选框表和一个按钮。我需要找到在按钮单击时选中的所有复选框的ID。一旦收集了ID列表,就需要将其传递给服务器。我可以使用jquery和pagemethods来完成它。

    如何在代码隐藏文件中的按钮单击处理程序中实现这一点?也就是说,单击按钮时选中的所有复选框的ID。

    我想在代码隐藏文件中执行此操作,因为代码隐藏文件包含一些创建图表并将其导出为PDF的函数,并且图表是基于选中的复选框创建的。

    请建议。

    干杯

    4 回复  |  直到 15 年前
        1
  •  2
  •   Andy Rose    15 年前

    如果没有对复选框使用服务器控件,或者在运行时动态添加了复选框,则可以使用前面的答案的替代方法是迭代作为回发的一部分发送的表单集合。如果选中了某个复选框,则该复选框将添加到此集合中,其ID作为其键,值为“on”。如果未选中,则不会将其添加到集合中。要使用此方法,您需要确保在命名约定上使用某种类型的方法,以允许您标识您所使用的复选框ID:

        foreach (var key in Request.Form.AllKeys)
        {
            if (key.EndsWith("checkbox", true, null))
            {
                // If entry found then this checkbox has been checked
            }
        }
    
        2
  •  3
  •   Binoj Antony    15 年前

    如果您的复选框是服务器控件,那么只需遍历复选框列表项,并在按钮单击事件中查找选中的项。

    如果您的复选框是HTML控件,则使用javascript将值放入隐藏的HTML输入控件,然后在Button Click事件中访问该值。

        3
  •  1
  •   Chris    15 年前

    首先,我建议您重新考虑一下为什么要尝试发现在客户端选中哪些复选框,并将其作为参数传递给表单发布。为什么不直接在按钮的onclick事件中枚举它们呢?

    第二,假设有一些最终要求,我建议您使用jquery来发现所有复选框,并将其ID存储在隐藏表单字段中的分隔字符串中。我不知道为什么你觉得有必要将这些信息作为直接参数传递给按钮单击事件本身,但不建议这样做。

    编辑:一个ASP.NET按钮控件有一个commandArgument属性,您可以使用它来存储它,但它似乎不显示这是可以从客户端设置的。

        4
  •  1
  •   rahul    15 年前

    因为您已经收集了jquery中的所有ID,所以最好将所有ID推送到一个数组中,然后使用类似“;”的串联运算符加入数组。将此连接值保存到隐藏的文本字段 <input type='hidden' id='txtHidIds' /> 具有 runat="server" 属性集。然后从C中获取隐藏字段的值,使用

    txtHidIds.Value
    

    然后使用所使用的串联运算符进行拆分。您可以在数组中获取结果,然后操作包含所有ID的数组。

    类似的东西

    $("#btn1").click(function() {
        var arrChecked = new Array();
    
        $("input[type='checkbox'].childCheck:checked").each(function() {
            arrChecked.push($(this).attr("id"));
        });
    
        $("#txtHidIds").val(arrChecked.join(';'));
    });