bucla matrice caseta de selectare c #

voturi
1

Am primit lung șir de valori din casetele de selectare HTML verificate (Request.Form [ „mylist“] a reveni valoare1, Value2, valoarea3 ....) pe prima formă în ASP.NET 2.0 pagina.

Acum, pur și simplu vreau să bucla astea, dar eu nu știu ce este cea mai bună practică la bucla această matrice de șir. Încerc să fac ceva de genul:

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

Dar aceasta nu funcționează.

Întrebat 02/07/2009 la 15:37
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
6

Trebuie să împartă virgulă separate șir. Încerca

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>");
}
Publicat 02/07/2009 la 15:40
sursa de către utilizator

voturi
0

Vă recomandăm să nu utilizați Split, în valori de formular pentru a preveni valorile de divizare cu virgule.

string myList = Request.Form.GetValues("myList");
foreach (var Item in myList)
{
  Response.Write(item + "<hr>");
}
Publicat 10/12/2012 la 10:01
sursa de către utilizator

voturi
0

Pentru a finaliza și răspunsul de depanare DolceVita, care are un punct important și corect ...

Având în vedere următorul exemplu 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>

puteți citi bifate casetele de selectare de către

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>");
Publicat 16/12/2015 la 01:19
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more