2009-07-02 115 views
1

我在ASP.NET 2.0頁面的表單文章中接收到長格式的選中的html複選框值(Request.Form [「mylist」] return Value1,Value2,Value3 ....)。c中的複選框數組循環#

現在我只想循環這些,但我不知道什麼是循環這個字符串數組的最佳做法。我試圖做這樣的事情:

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

但它不起作用。

回答

6

您必須拆分逗號分隔的字符串。嘗試

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>"); 
} 
0

我建議不要在表單值中使用分割以防止用逗號分割值。

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

要完成調試黛綽維納的回答,其中有一個重要的和正確的點...

對於以下示例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>"); 
閱讀所選複選框