【问题标题】:checkbox array loop in c#C#中的复选框数组循环
【发布时间】:2009-07-02 14:37:45
【问题描述】:

我在 ASP.NET 2.0 页面的表单帖子中收到一长串选中的 html 复选框值(Request.Form["mylist"] return Value1,Value2,Value3....)。

现在我只想循环这些,但我不知道循环这个字符串数组的最佳做法是什么。我正在尝试做这样的事情:

foreach (string Item in Request.Form["mylist"]){
  Response.Write(Request.Form["mylist"][Item] + "<hr>");
}

但它不起作用。

【问题讨论】:

    标签: c# asp.net checkbox foreach


    【解决方案1】:

    您必须拆分逗号分隔的字符串。试试

    string myList = Request.Form["myList"];
    if(string.isNullOrEmpty(myList))
    {
        Response.Write("Nothing selected.");
        return;
    }
    foreach (string Item in myList.split(new char[] {','}, StringSplitOptions.RemoveEmptyEntries))
    {
      Response.Write(item + "<hr>");
    }
    

    【讨论】:

      【解决方案2】:

      我建议不要在表单值中使用拆分,以防止用逗号拆分值。

      string myList = Request.Form.GetValues("myList");
      foreach (var Item in myList)
      {
        Response.Write(item + "<hr>");
      }
      

      【讨论】:

        【解决方案3】:

        为了完成和调试DolceVita的回答,有一个重要且正确的点...

        给定以下 HTML 示例

        <p>Select numbers for a sum:</p>
        <input type="checkbox" id="c1" name="myList" value="1"/><label for="c1">1</label>
        <input type="checkbox" id="c2" name="myList" value="2"/><label for="c2">2</label>
        <input type="checkbox" id="c3" name="myList" value="3"/><label for="c3">3</label>
        

        您可以通过

        读取选中的复选框
        var sum = 0;
        var selectedNumbers = Request.Form.GetValues("myList");
        
        if (selectedNumbers != null)
        {
            foreach (var selectedNumber in selectedNumbers)
            {
                // my example uses integers
                var number = int.Parse(selectedNumber);
                sum += number;
            }
        }
        
        Response.Write("<p>Sum: " + sum + "</p>");
        

        【讨论】:

          猜你喜欢
          • 2019-05-29
          • 1970-01-01
          • 2014-10-25
          • 1970-01-01
          • 2017-12-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多